我刚刚开始我的Javascript之旅,发现这个数组问题有点棘手和令人困惑.请有人在这里帮助我


const numbers = [1,2,3,4,5]
let luckyNum = numbers.pop()

数字的价值是什么?

提示:数字存储在常量而不是变量中

从MDN中,您可以阅读:

常量是块范围的,非常类似于使用 let 语句定义的变量。常量的值不能通过重新赋值来更改,也不能重新声明。

在特殊情况下,numbers变量保存对数组的引用,并且该引用将保持"常量",而不是数组本身。正如您可以在下一个示例中检查的那样:

const numbers = [1,2,3,4,5];
let luckyNum = numbers.pop();
console.log("luckyNum:", luckyNum, "numbers:", numbers);
// Now, next line will trhow an error, because we are
// trying to do a reassingment on a const variable:
numbers = [];

在您感兴趣的特定情况下,您可以使用 Object.freeze() 来禁止更改原语值array

const numbers = [1, 2, 3, 4, 5];
Object.freeze(numbers);
// Now, next line will thrown an error.
let luckyNum = numbers.pop();
console.log("luckyNum:", luckyNum, "numbers:", numbers);

我希望这能澄清你的疑问。

即使它是一个常量,它也将被修改,新值将是 [1,2,3,4]。

相关内容

最新更新