震惊![9,8,7,6][1,2] 竟然等于 7!
没用的知识又增加了,让我们来拆解一下。
第一步:[1,2] 将被转换为 [2]
为什么呢?
首先 [9,8,7,6] 是一个一维数组,后面的元素 [1,2] 不能作为数组执行,它将作为数组下标进行处理。
在下标的上下文中,[1,2]是一个以逗号(,)分隔的单一表达式。
在 MDN 的定义中,逗号(,)运算符对它的每个操作数从左到右求值,并返回最后一个操作数的值。
// 示例 1
const z = (1,2,3,4,5);
console.log(z); // 输出 5
// 示例 2
function a() {
return 'a';
}
function b() {
return 'b';
}
function c() {
return 'c';
}
const d = (a(), b(), c());
console.log(d); // 输出 'c'
第二步 获取数组索引值
在上述代码执行后,变为 [9,8,7,6][2],那么结果就很明显了,返回的是数组[9,8,7,6]索引为2的元素,即7。
下面是更多的变体:
[9,8,7,6][1,2,3] // 输出 6
[9,8,7,6][8,2,3,1] // 输出 8
翻译自:https://rahuulmiishra.medium.com/javascript-interview-question-why-does-9-8-7-6-1-2-7-a8c070d46cc6
内容略有删改
最后不要忘了点赞和在看呦!
祝 2024 年暴富!暴美!暴瘦!
评论