迭代中的ES6 const用法

时间:2017-06-21 07:15:12

标签: javascript ecmascript-6

我正在阅读Nodejs API,我对缓冲区的迭代感到困惑:

for (const b of buf10) {
  console.log(b)
}

const用于声明常量,那么为什么要使用const代替let

2 个答案:

答案 0 :(得分:6)

因为b 循环范围中的常量。请注意,letconst在ES6中具有阻止范围。每次迭代都会创建一个新变量,该变量将在其范围内保持不变。

答案 1 :(得分:2)

  

const用于声明常量,那么为什么要使用const而不是let?

因为您可以使用var letconst进行声明,但行为不同。

在这种情况下,

for (const b of buf10) {
  console.log(b)
}

因为每次迭代都会得到一个新的const b并在当前迭代之后结束。

总结如果你事先知道你不打算修改循环范围内的变量,你可以安全地去做。

如果您尝试修改循环内的b,则会发现错误。