关于 Chrome 中 js 空对象类型强制转换的疑问

当空对象和另一个数据求和的时候,如

{} + []

前面的空对象一般会当成一个空的代码块处理,变成

+ [] // 0

所以当空对象和空对象求和的时候

{} + {}

空对象当成代码块处理就等于

+ {}

结果应该是 NaN。

但是在 Chrome 中

{} + {} // "[object Object][object Object]"

显然是第一个空对象没有当成代码块处理。

在其他浏览器如 Firefox 或者 IE 中

{} + {}

结果都是 NaN。

Chrome 中为什么不一样,不太理解。


ABOUTYOU
浏览 559回答 1
1回答

慕婉清6462132

因为{} + {}有不同的解析方式   {    }    +{}前面是一个空代码块前后都当成一个对象进行解析,最后就是调用各自的toString方法,进行字符串拼接为了避免以上歧义,可以使用({} + {}),就可以达到一致了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

React.JS