在javascript中添加数字和数组会产生奇怪的结果

在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”之后。根据

在chrome的开发者工具控制台中工作时,我输入,
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”

您可以在浏览器控制台中尝试不同的组合以进行更多实验