chrome/FF 解析遇到 { 行为一致,返回不一致

测试的时候,发现一个问题,FF下:

imageimage

chrome 下:

imageimage

你会发现,FF 在解析一直到返回的时候,都是把 {x:1} 当做一个语句块去解析的,而 chrome 在返回的时候返回了对象,把 {x:1} 当做了对象字面量表达式去返回;

附注:可能有人要问为什么 FF 没有报错,以及为什么返回 1 ,这个请戳 MDN label;

不过后来发现还不是这么简单,因为 chrome 在解析遇到 { 的时候,还是按照语句块去解析的,因为你会发现,

image

这样是报错的,如果 chrome 把 { 当做对象字面量表达式去解析,那么访问 toString 方法是不应该报错的,而不合法的对象字面量表达式应该报错的,譬如:

image

如果强制按照表达式解析:

image

这样就不报错;这就说明,

chrome/FF 解析时,如果遇到 { 会把他当做语句块去解析,不过,如果解析完了,chrome 发现符合对象字面量的语法,就会把它转成对象字面量来返回,而 FF 不会;

转载于:https://www.cnblogs.com/xianshenglu/p/8442149.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值