javascript - for..of 循环定义中 let 和 const 的用法

标签 javascript ecmascript-6

<分区>

一般来说,我相当精通 es6 letconst 之间的区别。我不太确定的是 for..of 循环的定义。

我知道“老式”for 循环签名不会接受 const

for (let i = 0; i < 100; i++) ... // works in chrome

for (const i = 0; i < 100; i++) ... // does not work in chrome (reassignment error)

但是,对于 for..of 循环,它似乎并没有什么不同

const someArray = ['hello', 'hey'];

for (let elem of someArray) ... // works
for (const elem of someArray) ... // also works?

那么这里发生了什么?

为什么 for..of 中允许使用 const 而不是老式的 for 循环?

循环内的最终结果差异是什么? (除了可能在循环内重新分配 elem 之外,无论如何我都不希望很多人这样做)

最佳答案

只有一个变量被重新分配因此错误

for (const i = 0; i < 100; i++)

为每个循环创建了一个单独的变量,因此可以正常工作

for (const elem of someArray)

关于javascript - for..of 循环定义中 let 和 const 的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50453673/

相关文章:

javascript - ES2015 ${ } 语法适用于 Buffer 上的 toString() 吗?

javascript - 带有按类别标记/突出显示的关键字的文本段落

javascript - 使用 DOM-Javascript VS 纯 Javascript 对象的陷阱?

javascript - 未捕获的类型错误 : Cannot read property 'getAttribute' of null

javascript - 通过php函数增加HTML表格行

javascript - 如何知道用户点击了同一个元素?

javascript - 是否有任何高阶函数可以从 javascript 中的对象数组返回对象?

javascript - 如何制作一个javascript类数组?

javascript - es2015 map 不支持对象数组?

javascript - 如何停止 Promise 对象的自动解析?