gpt4 book ai didi

javascript - "The element expressions in an array initializer are evaluated each time the array initializer is evaluated"这句话是什么意思?

转载 作者:行者123 更新时间:2023-11-28 15:13:31 30 4
gpt4 key购买 nike

我正在阅读 David Flanagan 的《JavaScript:权威指南》,这可能是世界上最厚的 JavaScript 书。在简要描述数组初始值设定项时,弗拉纳根说“每次数组初始值设定项时都会评估数组初始值设定项中的元素表达式被评估”。这是什么意思。我的实践结果让我更加困惑:

var a = 50;    
var b = 70;

var array = [a+b, 50];
console.log (array [0]); //120

a = 60;
console.log (array [0]); //120

var other = array;
console.log (other [0]); //120

我认为将 a 的值更改为 60 后结果将是 130,因为表达式将被重新计算。但事实并非如此。我知道我完全搞错了。有人能解释一下弗拉纳根在这句话中试图解释什么吗?

最佳答案

他的意思是,当数组文字表达式被(“重新”-)计算时,它的内容也将被计算。

function makeArray() {
return [a];
}
var a = 0;
console.log(makeArray()); // [0]
a = 1;
console.log(makeArray()); // [1]

所以,实际上没什么特别的,只是默认的表达行为。

关于javascript - "The element expressions in an array initializer are evaluated each time the array initializer is evaluated"这句话是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35122439/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com