在javascript中添加数字和数组会产生奇怪的结果
在chrome的开发者工具控制台中工作时,我输入,在javascript中添加数字和数组会产生奇怪的结果,javascript,arrays,google-chrome,Javascript,Arrays,Google Chrome,在chrome的开发者工具控制台中工作时,我输入, 2+[] 它产生了意想不到的结果“2”。每个数字都是如此。发生了什么事?此外,当我们向非空数组中添加一些数字时,它会将数字与该列表的第一个元素连接起来,例如,2+[“abc”,6]生成“2abc,6”。 注意:我在js方面没有太多经验。这是由于javascript中的强制 2和[]都试图转换为通用类型-字符串 现在,数组的toString方法返回”,数字的toString在本例中返回“2” 因此,为了得到结果-“2”在连接了“和“2”之后。根据
2+[]
它产生了意想不到的结果
“2”
。每个数字都是如此。发生了什么事?此外,当我们向非空数组中添加一些数字时,它会将数字与该列表的第一个元素连接起来,例如,2+[“abc”,6]
生成“2abc,6”。注意:我在js方面没有太多经验。这是由于javascript中的强制
2
和[]
都试图转换为通用类型-字符串
现在,数组的toString
方法返回”
,数字的toString
在本例中返回“2”
因此,为了得到结果-
“2”
在连接了“
和“2”之后。根据我的观察,Javascript进行隐式类型转换,如果操作数的两侧不同,JS将在+
操作的情况下尝试将它们类型转换为字符串
例如,如果您尝试[12,34].toString()
它将返回“12,34”
,如果您尝试2+[]
js将其解释为2.toString()+[].toString()
,因此输出“2”
您可以在浏览器控制台中尝试不同的组合以进行更多实验