规格:ECMAscript 5和ECMAscript 3
5规范中的11.1.5节:
ObjectLiteral : { } { PropertyNameAndValueList } { PropertyNameAndValueList , }是的,它是规范的一部分。
更新: 显然,这是ES5中的新功能。在ES3(第41页)中,定义仅为:
ObjectLiteral : { } { PropertyNameAndValueList }对于数组文字(第11.1.4节),它甚至更有趣(
更新: ES3中已经存在):
ArrayLiteral : [ Elisionopt ] [ ElementList ] [ ElementList , Elision_opt ]
(
Elision_optElision opt在哪里,这意味着Elision是可选的)
Elision被定义为
Elision : , Elision ,
因此,像这样的数组文字
var arr = [1,2,,,,];
是完全合法的。这将创建一个包含两个元素的数组,但将数组长度设置为
2 + 3 = 5。
不要对IE期望太多(在IE9之前)…



