理解 JavaScript 中的数组下标怪癖
在 JavaScript 中,数组下标操作有时会导致令人惊讶的结果,让许多人想知道为什么会出现这样的结果与预期不同。考虑以下示例:
<code class="javascript">[5, 6, 8, 7][1, 2] = 8</code>
这个表达式为什么返回 8?
此行为源于 JavaScript 如何处理带有非数组第二个操作数的数组下标操作。当使用逗号分隔的表达式列表而不是单个数字对数组进行索引时,将按顺序计算表达式,并使用最后一个表达式的结果作为索引。
在这种情况下,表达式[1, 2] 的计算如下:
结果,数组下标运算变为:
<code class="javascript">[5, 6, 8, 7][2]</code>
计算结果为 8,这是数组中索引 2 处元素的值。
其他示例
进一步说明:
<code class="javascript">[1, 2, 3, 4, 5, 6][1, 2, 3]; // 4 [1, 2, 3, 4, 5, 6][1, 2]; // 3</code>
这些示例展示了相同的行为。数组下标运算中的第二个操作数被计算为单个表达式,从而产生用于访问数组中相应元素的索引值。
以上是为什么 JavaScript 中 `[5, 6, 8, 7][1, 2]` 返回 8?的详细内容。更多信息请关注PHP中文网其他相关文章!