在javascript数组"myArray [1,3]"中访问值时传递2个值

Mic*_*Fin 2 javascript arrays

我意识到这是不正确的语法,但为什么JavaScript会忽略第一个数字并给出响应而不是破坏?

let myArray = [1,2,3,4]

myArray[0,1] // 2
myArray[1,3] // 4
myArray[3,0] // 1 
Run Code Online (Sandbox Code Playgroud)

pus*_*kin 5

这不是不正确的语法.

这只是逗号操作符.

来自docs:

逗号运算符计算其每个操作数(从左到右)并返回最后一个操作数的值.

例如,[1,2][1,2]或许奇怪的是,将会回归undefined.

为什么?

第二个[由编译器解释为数组下标运算符,因为JavaScript的语义不允许两个数组彼此相邻.

因此,第二个1,2必须是一个求值为索引的表达式.1,2导致第一个操作数被评估,然后是第二个操作数,这是返回的.所以它使用索引2,当然在该数组中不存在,我们得到undefined.