原因:JS的异步特性造成的,setTimeout里面传入的函数在定时器到点以后才会被调用,当调用时,循环已经结束(i=5),因此输出5个5。
正确的代码:
for(var i=0; i<5; i++){
(function(j) {
setTimeout(()=>console.log(j), 1000)
})(i)
}
原因:JS的异步特性造成的,setTimeout里面传入的函数在定时器到点以后才会被调用,当调用时,循环已经结束(i=5),因此输出5个5。
正确的代码:
for(var i=0; i<5; i++){
(function(j) {
setTimeout(()=>console.log(j), 1000)
})(i)
}
全部评论: 0 条