传统上,我们使用
for (var key in yourobject) {
console.log(key, yourobject[key]);
}
但是对于 es6,我应该改为使用 const key
还是 let key
?
最佳答案
这与您是否在循环中使用它们无关。根据您的程序需要使用正确的绑定(bind)
const
绑定(bind)无法重新分配let
绑定(bind)可以重新分配
如果您不需要重新分配变量的能力,请使用 const
– 它更严格并且有助于保护您免受意外重新分配
如果您确实需要重新分配的能力,您别无选择,只能使用let
(或var
)
我喜欢@jfriend 的决策树,但我可能会这样写我的 ^_^
- 使用
常量
- 如果遇到重新分配问题,请使用
let
- 如果您遇到范围外的问题,请仔细检查您没有犯错;如果没有,使用
var
so since i'm using it in a for loop which reassigns the key in each cycle, i should use let?
没有。 const
和 let
绑定(bind)仅在它们定义的上下文/范围内可用。在 for
或 while
循环的情况下,绑定(bind)将仅在循环体中可用——不会发生重新分配
for (const x of [1,2,3])
console.log(x)
//1
//2
//3
for (const {a} of [{a:1}, {a:2}, {a:3}])
console.log(a)
//1
//2
//3
// const x and const a are not available outside of the loop
console.log(x) // ERROR: Uncaught ReferenceError: x is not defined
console.log(a) // ERROR: Uncaught ReferenceError: a is not defined
关于javascript - es6 使用 var、let 或 const 迭代对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44275117/