use*_*486 24 javascript internet-explorer-9
像Node.js这样的现代浏览器和环境允许你说{a:1,b:2,}或[1,2,3,].这在历史上一直是Internet Explorer的问题.这是在Internet Explorer 9中修复的吗?
T.J*_*der 32
这有两个不同的答案,一个用于对象初始化器中的悬空逗号,另一个用于数组初始化器中的悬空逗号:
对于对象初始值设定项,例如:
var obj = {
a: 1,
b: 2,
c: 3,
};
Run Code Online (Sandbox Code Playgroud)
它已在IE8及更高版本中修复.在此测试:http://jsbin.com/UXuHopeC/1(来源).IE7和更早版本将}在悬空逗号后抛出语法错误.
对于数组初始值设定项,例如:
var arr = [
1,
2,
3,
];
Run Code Online (Sandbox Code Playgroud)
它在IE9及以上版本中"固定" .在此测试:http://jsbin.com/UXuHopeC/2(来源).IE8和更早版本将为该数组提供四个条目,最后一个具有该值undefined.IE9及以上版本给它三个条目.
我把"修复"放在引号中,因为规范最初不清楚数组是否应该有最终undefined条目,所以这两种行为都不正确.只是IE走了一条路而其他人都去了另一条路.:-)
use*_*716 11
本文档声称它将被更正: http ://blogs.msdn.com/b/ie/archive/2010/06/25/enhanced-scripting-in-ie9-ecmascript-5-support-and-more. ASPX
更正的问题
数组文字中的尾随逗号添加到数组的长度
例
var len = [1,2,3,].length;
alert(len); //should be 3, IE8 says 4
它没有具体提到对象.只是阵列.
编辑:更多信息.从这份PDF文件:
http://download.microsoft.com/download/8/4/2/8427CF1B-08B3-4557-952D-102E7A8FA64C/[MS-ES3].pdf
...从此页面下载:http://msdn.microsoft.com/en-us/library/ff520996( VS.85).aspx
JScript 5.8支持将单个尾随逗号作为ObjectLiteral中的最后一项出现.JScript 5.7不支持此扩展.
| 归档时间: |
|
| 查看次数: |
7739 次 |
| 最近记录: |