答:代码中的问题在于`setTimeout()`的参数的匿名函数中使用了变量`i`,而由于`setTimeout()`是异步执行的函数,所以不会按照预期的5次循环输出0,1,2,3,4。正确的代码应该是:
```
for(var i=0; i<5; i++){
(function(i){
setTimeout(()=>console.log(i), 1000)
})(i)
}
```
答:代码中的问题在于`setTimeout()`的参数的匿名函数中使用了变量`i`,而由于`setTimeout()`是异步执行的函数,所以不会按照预期的5次循环输出0,1,2,3,4。正确的代码应该是:
```
for(var i=0; i<5; i++){
(function(i){
setTimeout(()=>console.log(i), 1000)
})(i)
}
```
全部评论: 0 条