作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在阅读 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/
我是一名优秀的程序员,十分优秀!