4

执行以下操作时,我得到这些输出

var t = {} + {}; // Alerts [object Object][object Object]
t = {} + 1 //Alerts [object Object]1
t = {} + "hello" //Alerts [object Object]hello
t = {} + function(){} //Alerts [object Object]function(){}
t = {} + [] //Alerts [object Object]

仅在最后一种情况下,它[Object object]不应该也显示警报[object Object][object Object]吗?

在 Firefox12.0 中测试。

4

1 回答 1

7

不,因为输出的第二部分是空数组的字符串化形式[]。数组被字符串化为字符串化值的逗号分隔列表,因此空数组字符串化为空字符串。您可以使用 确认这一点console.log([] + "" === "")

因此,{} + []结果等价"[object Object]" + ""

于 2012-05-17T10:21:54.957 回答