gpt4 book ai didi

javascript - 为什么 const 在 JavaScript 中的某些 for 循环中有效?

转载 作者:可可西里 更新时间:2023-11-01 01:21:47 25 4
gpt4 key购买 nike

知道为什么 const 在 for 循环中不起作用。我们需要创建一个新范围并将值复制到其中。所以这不会飞。

for(const i = 0; i < 5; i++) console.log(i);

而这会。

for(let i = 0; i < 5; i++) console.log(i);

但是,我注意到在像这样循环遍历对象的属性时,它们都可以工作。

for(let property in thingy) console.log(property);
for(const property in thingy) console.log(property);

我不知道为什么。

最佳答案

for (const property in object) 之所以有效,是因为每次迭代都会获得一个新变量,该变量的范围仅限于该迭代。您可以通过在循环内使用闭包轻松地检查:

for (const property in {a: 1, b: 2}) {
setTimeout(() => {
console.log(property);
}, 100);
}

这会记录 ab,但是如果您将 const 更改为 var,它会记录 b 两次。

关于javascript - 为什么 const 在 JavaScript 中的某些 for 循环中有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41067790/

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