4

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

4

2 回答 2

8

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

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

从上面的 MDN 参考:

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

自动类型转换的相同想法是为什么true + true === 2,类型转换是许多像这样一个棘手的 JavaScript 测验的基础。

于 2013-07-21T17:39:21.560 回答
3

对于像数组这样的非原始类型,为了应用加法,必须将其转换为原始类型,ToPrimitive 会为非原始类型调用 toString()。因此,在这种情况下,[] 变为 "",因此结果为 ""。

于 2013-07-21T17:46:19.290 回答