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

2022-08-30 00:15:44

我无法将我的思想包裹在这个怪癖上。

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

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


答案 1
[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`.

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

在此处阅读有关逗号运算符的详细信息


答案 2

因为。您偶然发现了逗号运算符(或此处更简单的解释)。(1,2) == 2

除非逗号出现在声明列表、参数列表、对象或数组文本中,否则它们的行为类似于任何其他二元运算符。 评估 ,然后评估并产生结果。x, yxy