Javascript 为什么[]和#x2B;[]是否返回空字符串?

Javascript 为什么[]和#x2B;[]是否返回空字符串?,javascript,node.js,Javascript,Node.js,最近我一直在尝试node.js,我发现javascript有一些语法逻辑,我无法理解。这是一个我不理解的示例,我想知道这是否只是一个随机的javascript事实,或者是否有任何逻辑。加号是算术加号或字符串串联。在[]+[]的情况下,空数组将转换为空字符串 数组的方法将返回一个字符串,该字符串是数组中所有元素的逗号分隔列表 根据以上MDN参考: 当数组表示为文本值或在字符串连接中引用数组时,JavaScript会自动调用toString方法 自动类型转换的相同想法就是为什么true+true==

最近我一直在尝试node.js,我发现javascript有一些语法逻辑,我无法理解。这是一个我不理解的示例,我想知道这是否只是一个随机的javascript事实,或者是否有任何逻辑。

加号是算术加号或字符串串联。在
[]+[]
的情况下,空数组将转换为空字符串

数组的方法将返回一个字符串,该字符串是数组中所有元素的逗号分隔列表

根据以上MDN参考:

当数组表示为文本值或在字符串连接中引用数组时,JavaScript会自动调用toString方法


自动类型转换的相同想法就是为什么
true+true===2
,类型转换是许多棘手的JavaScript测试的基础,例如。

对于数组等非基本类型,为了应用加法,必须将其转换为基元,ToPrimitive,对于非基本类型将调用toString()。因此,在这种情况下,[]变为“”,因此结果为“”。

+1表示基本正确的答案。正确地说,数组被转换为字符串(通过调用
toPrimitive()
),而不是强制转换。请看@TedHopp-谢谢您的关注。把答案扩大一点。