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

在javascript中添加数组和对象会产生错误,javascript,object,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 Obj

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

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]


在Firefox12.0中测试。

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


因此,
{}+[]
产生等效的
“[对象对象]”+”

只是为了补充一点,在计算时,通过调用其
toString
方法(如果有)将每个表达式转换为原语。