https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/43
一
for(var i=0;i<5;i++){
setTimeout((i)=>{
console.log(i)
},1000,i)
}
二
for(var i=0;i<5;i++){
(function(j){
setTimeout(()=>{
console.log(j)
},1000)
})(i)
}
JavaScript异步执行与闭包解析
这篇博客探讨了JavaScript中两种异步执行的方式:使用`setTimeout`的回调函数和立即执行函数表达式(IIFE)。第一种情况展示了变量`i`在回调函数中的作用域问题,导致输出为5个5。第二种情况通过IIFE创建了一个新的作用域,确保每个`setTimeout`内的`j`值独立,从而正确地按顺序输出0到4。
414

被折叠的 条评论
为什么被折叠?



