Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
最近我一直在尝试使用 node.js,我发现 javascript 有一些我无法理解的语法逻辑。这是一个我不明白的例子,我想知道这是否只是一个随机的 javascript 事实,或者它是否有任何逻辑。
加号是算术加号或字符串连接。在 的情况下,空数组将转换为空字符串[] + []。
[] + []
Array 的toString方法将返回一个字符串,它是数组所有元素的逗号分隔列表。
toString
从上面的 MDN 参考:
当数组将被表示为文本值或在字符串连接中引用数组时,JavaScript 会自动调用 toString 方法。
自动类型转换的相同想法是为什么true + true === 2,类型转换是许多像这样一个棘手的 JavaScript 测验的基础。
true + true === 2
对于像数组这样的非原始类型,为了应用加法,必须将其转换为原始类型,ToPrimitive 会为非原始类型调用 toString()。因此,在这种情况下,[] 变为 "",因此结果为 ""。