为什么 [5,6,8,7][1,2] = 8 在 JavaScript 中?

问题描述

[1,2,3,4,5,6][1,2,3];
      ^         ^
      |         |
    array       + — array subscript access operation,
                    where index is `1,2,3`,
                    which is an expression that evaluates to `3`.

第二个[...]不能是数组,所以是数组下标操作。并且下标操作的内容不是操作数的分隔列表,而是单个表达式。

在此处阅读有关逗号运算符的更多信息。

解决方法

我无法想象这个怪癖。

[1,2,3,4,5,6][1,3]; // 4
[1,2]; // 3

我知道[1,3] + [1,2] = "1,31,2",但我找不到正在执行的类型或操作。