for...of 循环。我应该使用 const 还是 let?

2024-04-22

当使用 for of 循环时,这两种情况都是允许的并且有效:

const numbers = [1,2,3];
// works
for(let number of numbers) {
    console.log(number);
}
// also works
for(const number of numbers) {
    console.log(number);
}

我总是用const因为我无法理解改变number变量在任何上下文中,但是当我看到for...of在别人的代码中循环,经常使用let。也许有一个缺点const我没看到吗?浏览器错误?

Why use const以及何时使用let in for...of loops?


Why use const以及何时使用let in for...of loops?

如果循环体中没有对标识符进行赋值,则是否使用是风格问题let or const.

Use const如果您希望循环体内的标识符是只读的(例如,如果有人稍后修改代码以添加分配,则这是一个主动错误)。使用let如果您希望能够对其进行赋值(因为您的代码中有一个赋值,或者您希望其他人能够在不更改声明的情况下添加一个赋值)。

你可以这样做for-of and for-in循环。 Afor循环的控制变量通常不是常量(因为在正常情况下,您在循环的“update”子句中更新它)for;如果你不这样做for可能是错误的循环使用),所以你通常使用let用它。


为了清楚起见,下面是一个在循环体内进行赋值的示例:

for (let str of ["a", " b", " c "]) {
    str = str.trim();
//  ^^^^^----- assignment to the identifier
    console.log(`[${str}]`);
}

如果你使用const for str在上面,你会得到一个错误:

for (const str of ["a", " b", " c "]) {
    str = str.trim();
//  ^^^^^----- Error
    console.log(`[${str}]`);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

for...of 循环。我应该使用 const 还是 let? 的相关文章

随机推荐