gpt4 book ai didi

javascript - 嵌套循环中 Javascript 变量的范围

转载 作者:行者123 更新时间:2023-11-28 12:22:04 25 4
gpt4 key购买 nike

我认为用“var”声明一些东西使它成为其范围的本地内容。那么,为什么这段代码似乎没有两个名为“len”的不同变量,而只有一个?

for (var i=0, len=3; i<len; i++) {
for (var j=0, len=1; j<len; j++) {
console.log('i=' + i + ', j=' + j + ', len=' + len);
}
}

在输出中,我只得到一行,而不是三行。为什么?

(在 Chrome 和 Safari 上正确,尚未检查其他。)

最佳答案

因为使用 var 声明的变量 are bound to the function scope ,而不是像许多其他语言那样的 block 作用域。例如,这工作得很好:

if (true) {
var thing = 'something';
}
console.log(thing); // 'something'

但是,这不起作用,因为范围是由函数定义的。

function a() {
var thing = 'something';
}
function b() {
console.log(thing); // ReferenceError
}
a();
b();

关于javascript - 嵌套循环中 Javascript 变量的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35850954/

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