执行时
console.log( (4 + [] + 8) )
我得到48
的结果,当我单独执行[]
时,它会给0
。它是如何工作的?
答案 0 :(得分:3)
因为这是number
和array
的总和,所以javascript会将两者都转换为字符串。
因此:
'4' + '' + '8' = '48'
(请注意,结果为string
,而不是number
)
如果向阵列添加更多元素,它将像这样工作
4 + [1, 2] + 8 = '41,28'
这是因为默认情况下,数组通过将值与,
连接成为字符串。
另一个例子
4 + [1, 2, 3, 4, 5] + 8
= 41,2,3,4,58
注意:如果您尝试对两个arrays
求和,它们也将成为字符串,因为javascript没有用于求和数组的本机实现。
[1, 2] + [3, 4] = '1,23,4'
答案 1 :(得分:0)
喜欢在评论中解释。
当您将数组上的+
运算符用于不同类型的变量时,js引擎将通过[] .toString()将其称为字符串。
在字符串中添加数字也会将数字转换为字符串。