当空对象和另一个数据求和的时候,如{} + []前面的空对象一般会当成一个空的代码块处理,变成+ [] // 0所以当空对象和空对象求和的时候{} + {}空对象当成代码块处理就等于+ {}结果应该是 NaN。但是在 Chrome 中{} + {} // "[object Object][object Object]"显然是第一个空对象没有当成代码块处理。在其他浏览器如 Firefox 或者 IE 中{} + {}结果都是 NaN。Chrome 中为什么不一样,不太理解。
1 回答
慕婉清6462132
TA贡献1804条经验 获得超2个赞
因为{} + {}
有不同的解析方式
{ } +{}
前面是一个空代码块
前后都当成一个对象进行解析,最后就是调用各自的
toString
方法,进行字符串拼接
为了避免以上歧义,可以使用({} + {})
,就可以达到一致了
添加回答
举报
0/150
提交
取消