为什么JavaScript const
与let
循环中的for in
相同? const
用于在EC6中声明常量。那么为什么const num
值会在for in
的每次迭代中得到更新?
for in with
for (let num in nums) {
console.log(num); // works well, as usual
}
for with with const
for (const num in nums) {
console.log(num); // why const value getting replaced
}
答案 0 :(得分:8)
为什么在
const num
的每次迭代中都会更新for in
值?
它没有得到更新。 Similar to let
,它的作用域是循环块,并在每次迭代时创建一个新的const
变量,并使用相应的属性键进行初始化。
答案 1 :(得分:1)
为什么JavaScript const的工作方式与in in循环相同?
根据定义,const
的范围限定为let
。
那么为什么const num值会在for的每次迭代中得到更新?
不是。因为它是块作用域,所以每次循环时,旧的常量都会超出范围而你会创建一个新的。
答案 2 :(得分:0)
可能(不确定)适用于其声明的范围。看来你在for语句的范围内声明了常量,所以它会被删除并重新声明每次新的迭代。所以每次它都有不同的价值。
这是猜测,不确定......