es6 在使用let设置循环变量的时候,设置循环变量的那部分是一个父作用域,循环体内部是一个单独的子作用域。如果循环体内部重新使用let声明一个和循环变量重名的变量,那么该变量不会影响父作用域中的循环变量,例如:
for(let i = 0; i < 3; i ) {
let i = 'abc';
console.log(i);
}
//abc
//abc
//abc
输出三次abc,不影响父作用域中的i,不会输出0,1,2
如果在循环体中不重新声明变量i的话,那么循环体中依旧使用父作用域中的循环变量i,结果会输出0,1,2
参考自:http://es6.ruanyifeng.com/#docs/let
更多专业前端知识,请上 【猿2048】www.mk2048.com