为什么({} + [])的结果不等于([] + {})

时间:2015-11-19 10:29:32

标签: javascript type-conversion

如果只有字符串和数字或布尔值,则Javascript添加操作很容易理解。

但是对象和数组越来越难。

我查看了规范ECMA Script 3, 1999 11.6.1并进入道格拉斯·克罗克福德Enciclopedia,但两者提供的算法都没有解释原因:

[] + {}  // "[object Object]"
{} + []  // 0
{} + 0   // 0
0 + {}   // "0[object Object]"

{} + {}  // NaN, but not either 0 or "[object Object][object Object]"

有人可以解释一下吗?

0 个答案:

没有答案