gpt4 book ai didi

javascript - 在 for-in 循环的内部或外部声明变量

转载 作者:搜寻专家 更新时间:2023-11-01 05:29:05 25 4
gpt4 key购买 nike

有这两个选项:

选项 A:

var index;
for (index in myObject) {
// Do something
}

选项 B:

for (var index in myObject) {
// Do something
}

我不知道选项 B 中的变量 index 是在每次循环中都被重新声明还是只被重新声明一次。

最佳答案

这两个代码片段做的事情完全相同(大多数语言都是这种情况,例如 C、C++ 和 C# 等)。如果变量在每次迭代时都被重新声明,那么按照你的逻辑,它也会被重新初始化,并且会不断地遍历同一个对象。你的循环将是无限的。

附带说明一下,在 JavaScript 中,所有变量声明都被推送到函数范围;这意味着您可以在函数内的任何位置声明变量,甚至在嵌套循环内,而且它们只会被声明一次。

Link to the var documentation

Relevant SO question

Other relevant SO answer

由@torazaburo 提供编辑:

如果您想声明一个具有局部范围的变量(例如,一个只会在当前 block 中定义的变量,例如 forwhileif,可以使用let语句:

let var1 = 123;

它还允许您覆盖具有相同名称但在更高范围内声明的变量,例如文档中的示例:

function letTest() {
let x = 1;
if (true) {
let x = 2; // different variable
console.log(x); // 2
}
console.log(x); // 1
}

查看完整文档(和示例)here .

关于javascript - 在 for-in 循环的内部或外部声明变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38682096/

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