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循环时就执行了的,不属于异步执行的范围。