任何人都可以向我解释如何评估以下结果?
{} + {} // NaN
[] + {} // "[object Object]"
{} + [] // 0
[] + [] // ""
Run Code Online (Sandbox Code Playgroud) 就在我以为我理解JavaScript中的类型转换时,我偶然发现了这个:
+[]; // 0
Number([]); // 0
Run Code Online (Sandbox Code Playgroud)
我的第一个想法是我应该得到NaN,就像我尝试将空对象转换为数字一样:
+{}; // NaN
Number({}); // NaN
Run Code Online (Sandbox Code Playgroud)
我一直在寻找这个有一段时间而没有任何成功......
有人可以解释为什么它被转换为0而不是NaN?
这种行为是标准的吗?
谢谢.