for (var i = 1; i <= 5; i++) {
setTimeout(function timeer() {
console.log(i);//5个6
}, 1000)
}
先执行同步,同步执行完了之后,指向异步;
这个循环的终止条件是i=6;此时执行异步。
for (let i = 1; i <= 5; i++) {
setTimeout(function timeer() {
console.log(i); //1 2 3 4 5
}, 1000)
}
//同样执行同步,同步执行完后是异步,因为let 具有块级作用域。
它在循环的时候,单独产生一个作用域。所以是 1 2 3 4 5