为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

ABOUTYOU 2019-01-31 20:59:14
当空对象和另一个数据求和的时候,如{} + []前面的空对象一般会当成一个空的代码块处理,变成+ [] // 0所以当空对象和空对象求和的时候{} + {}空对象当成代码块处理就等于+ {}结果应该是 NaN。但是在 Chrome 中{} + {} // "[object Object][object Object]"显然是第一个空对象没有当成代码块处理。在其他浏览器如 Firefox 或者 IE 中{} + {}结果都是 NaN。Chrome 中为什么不一样,不太理解。
查看完整描述

1 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

因为{} + {}有不同的解析方式

  1.    {
       }
       +{}

    前面是一个空代码块

  2. 前后都当成一个对象进行解析,最后就是调用各自的toString方法,进行字符串拼接

为了避免以上歧义,可以使用({} + {}),就可以达到一致了


查看完整回答
反对 回复 2019-01-31
  • 1 回答
  • 0 关注
  • 555 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信