IE javascript 数组直接量bug

探讨了在不同浏览器中对于对象和数组定义时末尾多余的逗号的处理方式,揭示了IE与其他现代浏览器在此方面的差异,并提到了利用此特性进行浏览器判断的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var p = {name:"Jack",age:33,};

1.firefox下测试,引擎会忽略33后的逗号,可以通过语法检查,在执行期也不会报错

2.IE6/7下测试,语法分析期就报错了,当然也不会进入执行期了

3.不过在IE8下已经修复此问题,不会报错了。其它浏览器也不会报错

var ary = [1,2,];
1.IE6/7/8 输出length为3,IE9及其它浏览器为2。ECMAScript 5 11.1.4 其中有段说明了应该忽略最后的逗号。但直到IE9才实现该规范。其它浏览器则没问题

有人曾经利用了数组的这个特性创造出了所谓《全世界最短的IE判断》

var ie = !-[1,];
但在IE9下被终止了。不要利用这个Bug去判断浏览器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值