最近在看阮一峰老师的《ES6》
看到let时,发现一处for循环很神奇的地方。
书中的原话是:“另外,for循环还有一个特别之处,就是设置变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域。”
书中的例子是:
1 for(let i = 0; i < 3; i++){ 2 let i = 'abc'; 3 console.log(i); 4 } 5 //abc 6 //abc 7 //abc
在for循环体内部,用let 声明一个变量i为‘abc’,而for循环设置变量的地方也是let 声明的变量i。
let生命的变量是在块及作用域起作用。输出的结果是三次abc。
并不是0,1,2,从这点可以看出,
设置循环变量的地方就是父作用域!循环体内部就是单独的子作用域!