您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

数组和对象中的尾部逗号是否属于规范的一部分?

数组和对象中的尾部逗号是否属于规范的一部分?

规格:ECMAScript 5ECMAScript 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之前)…

其他 2022/1/1 18:16:48 有584人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶