猿问

关于for循环的问题。

为什么呢?
for(vari=0;i<10;i++){
setTimeout('console.log(i)',100);
};//输出10
for(vari=0;i<10;i++){
console.log(i)
};//输出9
在看let和var的例子的时候,
vara=[];
for(vari=0;i<10;i++){
a[i]=function(){
console.log(i);
};
console.log(i)
}//i到最后也是10.
偶然的你
浏览 380回答 2
2回答

波斯汪

因为setTimeout是异步执行的,当这个方法执行的时候,i都已经是10了。可以使用闭包来防止变量污染。for(vari=0;i
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答