震惊![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

内容略有删改

最后不要忘了点赞和在看呦!fd453b4e98c2f78474830bfa3a97bd6f.gif

祝 2024 年暴富!暴美!暴瘦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值