js异步执行(settimeout)遇到的坑
for(var i=0;i<5;i++){ var f=settimeout(function(){ console.log(i); },i*1000); console.log(f); }
上面代码输出:
1
2
3
4
5
5个5,每隔1s输出一次
1,2,3,4,5是f的循环输出,也是settimeout的返回值,返回值从1开始,每执行1次,返回值加1
5个5是因为异步执行的原因,每隔1s输出一次,是因为i*1000是在for循环时就执行了的,不属于异步执行的范围。
您可能感兴趣的文章:
如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!
网友评论