答:代码中的问题在于`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) } ```