传统上,我们使用
for (var key in yourobject) {
console.log(key, yourobject[key]);
}
但是使用es6,我应该改为使用const key
还是let key
?
答案 0 :(得分:5)
这与您是否在循环中使用它们无关。根据您的程序需要使用正确的绑定
const
绑定无法重新分配let
绑定可以重新分配如果您不需要重新分配变量,请使用const
- 它更严格,有助于保护您免遭意外重新分配
如果您确实需要重新分配的功能,除了使用let
(或var
)之外别无选择
我喜欢@jfriend的决策树,但我可能会像这样写^ _ ^
const
let
var
所以既然我在for循环中使用它,在每个循环中重新分配键,我应该使用let?
没有。 const
和let
绑定仅在定义它们的上下文/范围内可用。在for
或while
循环的情况下,绑定仅在循环体中可用 - 不进行重新分配
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