为什么[]+[]返回一个空字符串

Why does [] + [] return an empty string?

本文关键字:一个 字符串 返回 为什么      更新时间:2023-09-26

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

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

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

根据以上MDN参考:

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

自动类型转换也是true + true === 2的原因,而类型转换是许多像这样棘手的JavaScript测试的基础。

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