【发布时间】:2017-05-31 03:28:02
【问题描述】:
传统上,我们使用
for (var key in yourobject) {
console.log(key, yourobject[key]);
}
但是对于es6,我应该改为使用const key还是let key?
【问题讨论】:
-
视情况而定,var 在大多数循环中都可以,但我认为
let是首选:p -
使用
let而不是var会改变行为(在正确实现它的浏览器中),但新行为(主观上)更好,所以... -
@nnnnnn
const并不暗示该变量是一个常量或者它不能被变异——它是一个常量binding,而不是一个常量value -
@naomik - 在你回复之前,我删除了我的那部分评论,但我的意思是,当
key获得一系列不同的值。当特定的const可以获得不同的值 时,是否存在循环以外的上下文? (我知道如果它指的是一个对象,这个对象可以被变异,但这不是一回事。) -
@nnnnnn
for (const x of xs) ...对您来说可能看起来很奇怪,但如果您不打算重新分配x(您可能不会),那么没有理由使用更宽松的let绑定;至少没有一个我能想到的。诚然,在过去一年左右的时间里,我在两者之间摇摆不定,但几乎所有事情我都登陆了const。let向我发出信号,将重新分配绑定
标签: javascript loops for-loop ecmascript-6