[9, 8, 7, 6][1,2] = ?

发布时间:2024年01月19日

当我们运行这段代码时,控制台中会记录什么值?

const arr = [9, 8, 7, 6];
const res = arr[1, 2];
console.log(res);

当我们运行这段代码时,res 的值将是 7。并且控制台中会打印出 7

让我们来详细分析一下。

第一步:[1, 2] 会被转换成 [2]

为什么?

后续的元素 [1, 2] 不能作为数组进行操作;因此,它作为数组下标进行操作。在下标操作的上下文中,内容不构成操作数的分隔列表,而是一个单一的表达式。

在javascript中,我们可以用逗号(,)分隔多个表达式。最后一个表达式的结果会被返回。

// 示例 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] 后很简单,我们正在尝试访问索引 2 的元素,它是 7。

这里是更多的变体:

[9, 8, 7, 6][1, 2, 3] // 输出 6 

[9, 8, 7, 6][8, 2, 3, 1] // 输出 8

所以在本例中,[1,2] 被解释为表达式 2,最终我们获取了数组中索引为 2 的元素,也就是 7。

文章来源:https://blog.csdn.net/weixin_42429220/article/details/135686505
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。