由于最近在看深入理解es6的书,书中描述说,普通for循环下,let 声明每次都创建了一个新的 i 变量,那同理在普通for循环中const也是如此,就存在多个新的变量,但是实际上,for循环中使用const会报错,至此我就很不能理解了,书中原话见:
咱们在继续顺着书往下看,发现,在for in
和for of
中使用const
不会报错,书中描述每次循环都会创建新key,每个key的值没有被改变,所以没有报错,书中原话如下:
ok这里没有问题,经过用代码实验,也确实如此,每次循环都会创建新的key变量
对于普通for循环中,let和const都会创建新的变量i,表示不理解,通过代码断点调试,发现自始至终也只创建过一次变量i
调试代码:
for(let i = 0; i < 10; i++){
console.log(i)
}
// 报错
for(const i = 0; i < 10; i++){
console.log(i)
}
const boy = {
name: 'zhan',
age: 23,
sex: 'boy'
}
for(const key in boy){
console.log(key)
}