在javascript中添加数组和对象会产生错误

Ash*_*thy 4 javascript object

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

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]
Run Code Online (Sandbox Code Playgroud)

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

在Firefox12.0中测试过.

Jon*_*Jon 7

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

因此,{} + []结果相当"[object Object]" + "".