我试图在Chrome控制台中打印以下组合的结果。但无法理解结果。为什么控制台返回以下结果有人可以解释一下吗?
[] + {} ==> "[object Object]"
{} + {} ==> "[object Object][object Object]"
{} + [] ==> 0
[] + [] ==> ""
答案 0 :(得分:2)
如果添加两个对象(数组也是对象),js会为你调用toString
,所以
[] + {}
实际上是:
[].toString() + {}.toString()
对数组进行字符串化连接其元素,并且当数组为空时,它将被字符串化为""
。对象始终字符串化为"[Object object]"
。这解释了除了以外的一切:
{} + []
...那就是你身边的错误,它会返回"[Object object]"