首页 > 其他 > 详细

第一秒输出0,然后每隔一秒分别输出1,2,3,4用for 和setTimeout

时间:2021-04-15 23:22:05      阅读:23      评论:0      收藏:0      [点我收藏+]

方法一:let块级作用域 

for(let i=0;i<5;i++){
setTimeout(function(){
console.log(i)
},1000*i)
}
方法二:闭包

for(var i=0;i<5;i++){
(function(i){
setTimeout(function(){
console.log(i)
},1000*i)
})(i)
}
一个js 运行的时候分为执行栈和执行队列,用到setTimeout的时候里面是一个函数,函数直接放到执行队列里了,如果条件触发了就会执行该函数,就像后面那个时间,不加i*1000的话,他们是一起出来的,因为他把每循环当成一个函数放到队列里了,然后时间都是1000,所以一起出来的。

第一秒输出0,然后每隔一秒分别输出1,2,3,4用for 和setTimeout

原文:https://www.cnblogs.com/kaicy/p/14664218.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!