由于某些原因,[,]
是javascript中有效的数组文字。它是一个1元素的数组。 [,,]
也可以工作,依此类推。我正在查看语法,以了解为什么要进行语法分析,但据我所知,不应在此处允许使用空表达式。
有任何想法吗?
最佳答案
看来我在看较旧的语言规范。 ECMAScript Language Specification, 5.1 Edition (HTML version)
将ArrayLiteral定义为:
ArrayLiteral :
[ Elision opt ]
[ ElementList ]
[ ElementList , Elisionopt ]
Elision :
,
Elision ,
Elision规则似乎定义了这种情况
在某种意义上,它为数组元素“占位符” allows。
在处理主要逗号时,我遇到了这个问题:
var x = [
, something
, somethingElse
, 2
]
我想知道为什么我要为第一个元素获取
undefined
。感谢PointedEars和Derek朕会功夫