Internet Explorer 9 是否会因数组和对象文字末尾的额外逗号而卡住?

2024-05-17

现代浏览器和 Node.js 等环境允许您说 {a:1, b:2,} 或 [1,2,3,]。这在历史上一直是 Internet Explorer 的问题。 Internet Explorer 9 中修复了此问题吗?


对此有两种不同的答案,一种是对象初始值设定项中的悬空逗号,另一种是数组初始值设定项中的悬空逗号:

For 对象初始值设定项, e.g.:

var obj = {
    a: 1,
    b: 2,
    c: 3,
};

它固定在IE8以上。在这里测试一下:http://jsbin.com/UXuHopeC/1 http://jsbin.com/UXuHopeC/1 (source http://jsbin.com/UXuHopeC/1/edit)。 IE7 及更早版本会抛出语法错误}在悬空逗号之后。

For 数组初始值设定项, e.g.:

var arr = [
    1,
    2,
    3,
];

它被“固定”在IE9以上。在这里测试一下:http://jsbin.com/UXuHopeC/2 http://jsbin.com/UXuHopeC/2 (source http://jsbin.com/UXuHopeC/2/edit)。 IE8 及更早版本将给出该数组four条目,最后一个具有值undefined。 IE9及以上版本给它三个条目。

我将“fixed”放在引号中,因为规范最初不清楚数组是否应该有一个最终的undefined进入或不进入,所以这两种行为都是不正确的。只是 IE 走的是一种方式,而其他人则走的是另一种方式。 :-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Internet Explorer 9 是否会因数组和对象文字末尾的额外逗号而卡住? 的相关文章

随机推荐