为什么JS数组接受逗号分隔的索引?

时间:2015-04-27 21:46:35

标签: javascript

我不小心打字:

var x = [1, 2, 3, 4];
console.log(x[1, 2]); //this will log 3
console.log(x[3, 1]); //this will log 2

事实证明,我可以使用任意数量的逗号分隔索引来引用数组元素。始终使用最后一个索引。如果最后一个索引大于数组,则结果为undefined

为什么这种语法有用?

1 个答案:

答案 0 :(得分:2)

因为属性访问括号的内容是一个表达式。在这种情况下,表达式是一系列操作数和comma operators,它们分别计算到示例中的最终操作数(21)。这是要访问的数组索引。

这基本上与在属性访问括号中的表达式中使用其他运算符来动态评估将要访问的属性名称相同,例如, x[x.length - 1]x[some_var * 3]