for(var i =0;i<5;i++){(function(i){setTimeout(function(){console.log(i);},1000)})(i)}会每隔一秒
时间: 2024-05-19 18:11:26 浏览: 67
Node.js中使用计时器定时执行函数详解
打印出一个数字,依次为 0,1,2,3,4。这是因为在循环中使用了立即执行函数表达式(IIFE),每个 IIFE 都会创建一个新的作用域,并将 i 的值作为参数传入,防止因为闭包导致的 i 值错误。同时,使用了 setTimeout() 函数来延迟执行打印语句,每个 setTimeout() 函数都会在相应的延迟后执行。因此,整个循环会在 5 秒钟后完成打印。
阅读全文