JavaScript如何用数组解释索引数组?

JavaScript如何用数组解释索引数组?,javascript,arrays,indexing,Javascript,Arrays,Indexing,为什么这不是一个SyntaxError错误(一个不好的遗留或有目的的特性)?(可能是重复的,但我找不到答案。) 更新:为什么将方括号中的内容视为表达式?第一部分: [1,2,4,8][0,1,2,3] // equals to 8 (the last element of the indexing array (3) becomes the index) 被解释为数组文字。第二部分: [1,2,4,8] 被解释为方括号符号以访问数组的成员。方括号的内容被视为一个表达式,它被视为一系列逗号分隔

为什么这不是一个
SyntaxError
错误(一个不好的遗留或有目的的特性)?(可能是重复的,但我找不到答案。)

更新:为什么将方括号中的内容视为表达式?

第一部分:

[1,2,4,8][0,1,2,3]
// equals to 8 (the last element of the indexing array (3) becomes the index)
被解释为数组文字。第二部分:

[1,2,4,8]
被解释为方括号符号以访问数组的成员。方括号的内容被视为一个表达式,它被视为一系列逗号分隔的值:

[0,1,2,3]
该表达式返回最后一个值,因此实际上是:

0,1,2,3 // or (0,1,2,3) as an independent expression
第一部分:

[1,2,4,8][0,1,2,3]
// equals to 8 (the last element of the indexing array (3) becomes the index)
被解释为数组文字。第二部分:

[1,2,4,8]
被解释为方括号符号以访问数组的成员。方括号的内容被视为一个表达式,它被视为一系列逗号分隔的值:

[0,1,2,3]
该表达式返回最后一个值,因此实际上是:

0,1,2,3 // or (0,1,2,3) as an independent expression

是的,这从问题中很明显,这是(抱歉再次提问):
为什么是这样?
@Vidul:因为语法
x[y]
实际上被解释为
引用[expression]
。由于索引是一个表达式,因此逗号被视为运算符,处理方式与
+
-
相同。索引之所以是一个表达式,是为了允许这样的事情:
x[y+1]
。那是why@slebetman你的评论很有道理。请你把它贴出来作为答案好吗?@Vidul:很遗憾,我不能,因为这个问题已经结束了,而重复的问题并不是问你在问什么。@Vidul:我不介意。在接近40k的情况下,我不需要点y,这从问题中很明显,这是(抱歉再次提问):
为什么是这样?
@Vidul:因为语法
x[y]
实际上被解释为
引用[expression]
。由于索引是一个表达式,因此逗号被视为运算符,处理方式与
+
-
相同。索引之所以是一个表达式,是为了允许这样的事情:
x[y+1]
。那是why@slebetman你的评论很有道理。请你把它贴出来作为答案好吗?@Vidul:很遗憾,我不能,因为这个问题已经结束了,而重复的问题并不是问你在问什么。@Vidul:我不介意。在接近40k的情况下,我不需要积分