Js立即执行函数的使用场景
立即执行函数的使用
(function(){
}
)();
立即执行函数在定义完后即执行,执行完之后就销毁自身,因此在立即执行函数中声明的变量不会污染全局变量。
使用场景
for(var i=1;i<10;i++){
setTimeout(
function(){
console.log(i);
},100)
}
按正常逻辑来说控制台应该会打印1到9九个数字,但是由于setTimeout是异步方法,只会在同步进程完成后再执行,因此输出的结果为9个10。
for(var i=1;i<10;i++){
(function(){
setTimeout(
function(){
console.log(i);
},100)
})();
}
使用立即执行函数包含异步方法,使得每一次循环后都会执行一次延时方法,这时控制台就会正常打印10个数字。
评论区