作用域的问题,let变量在子作用域中独立,而var变量只存在于父级作用域。
for (let i = 0; i < 3; i ++ ) {
setTimeout(() => { console.log(i) }, 200); // 0 1 2
}
for (var i = 0; i < 3; i ++ ) {
setTimeout(() => { console.log(i) }, 200); // 3 3 3
}
验证:
for (let i = 0; i < 3; i ++ ) {
setTimeout(() => { i ++ ; console.log(i) }, 200); // 1 2 3
}
for (var i = 0; i < 3; i ++ ) {
setTimeout(() => { i ++ ; console.log(i) }, 200); // 4 5 6
}
原文:https://www.cnblogs.com/develon/p/12257700.html