由于某些原因,[,]是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朕会功夫

08-19 10:57