在添加空数组和对象时,为什么控制台会像这样返回?

时间:2018-03-31 16:35:28

标签: javascript

我试图在Chrome控制台中打印以下组合的结果。但无法理解结果。为什么控制台返回以下结果有人可以解释一下吗?

[] + {} ==> "[object Object]"

{} + {} ==> "[object Object][object Object]"

{} + [] ==> 0

[] + [] ==> ""

1 个答案:

答案 0 :(得分:2)

如果添加两个对象(数组也是对象),js会为你调用toString,所以

 [] + {} 

实际上是:

 [].toString() + {}.toString()

对数组进行字符串化连接其元素,并且当数组为空时,它将被字符串化为""。对象始终字符串化为"[Object object]"。这解释了除了以外的一切:

 {} + []

...那就是你身边的错误,它会返回"[Object object]"