当使用 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(使用前将#替换为@)