记得在一次笔试中笔试过这么一道题
for(var i=0;i<5;i++){
setTimeout(function(){
console.log(i)
},1000 * i)
}
给你这个一个程序 然后输出 如果得不到想要的结果(0,1,2,3,4) 你会怎么修改
解决方法一
用闭包的方法解决
for (var i=1; i<=5; i++) {
setTimeout( (function(i) {
return function() {
console.log(i);
}
})(i), i*1000 );
}
解决方法二
用es6的方法解决
for(let i=0;i<5;i++){
setTimeout(function(){
console.log(i)
},1000 * i)
}