1.为什么如下代码会打印 6 个 6
let i = 0;
for(i = 0 ; i < 6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
//6 6 6 6 6 6
解答:
setTimeout的意思是我会尽快的意思
在这循环的过程中每一循环一次相当于定了一次闹钟,
当循环不满足条件的时候,setTimeout就让console.log()开始输出了,
所以当等于6时, 循环条件不满了足,所以输出了6个6
2.让上面代码打印 0、1、2、3、4、5
for(let i = 0 ; i < 6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
//0 1 2 3 4 5
解答:
因为JS在for和let一起用的时候会加东西,
每次循环会多创建一个i存储进来, 所以当输出的时候,会把每一次储存i输出。