原文:for循环中的setTimeout()

打印结果:三个 原因分析:setTimeout 是一个异步处理函数,它会等待所有的主线程任务处理完,才开始执行自己的内部的任务,每隔 s往任务队列中添加一个任务 闭包函数,setTimeout 中的函数,现在还没执行 ,当主线程执行完时,这时i , 才开始执行任务队列中的任务 闭包函数,setTimeout 中的函数开始执行,执行三次 。 for循环是遵循js执行机制 从上到下,依次同步执行,f ...

2019-09-23 19:33 0 721 推荐指数:

查看详情

for循环中setTimeout,var与let的不同

先看下面两段代码 一个是输出0 1 2 3 4一个是输出5个5 为什么let的i,在setTimeout里的匿名函数,i取的还是块级作用域里的i? 一个假设是let的循环中,每次循环,js引擎让i都变成了一个新变量的原因导致的。 ...

Wed Jan 23 21:21:00 CST 2019 0 891
浅谈循环中setTimeout执行顺序问题

浅谈循环中setTimeout执行顺序问题 (下面有见解一二) 期望:开始输出一个0,然后每隔一秒依次输出1,2,3,4。 结果:输出5。 原因:setTimeout 使函数延迟1s执行,而for循环执行完成还不到0.1秒,到执行函数的时候,其实 i 已经 ...

Fri Apr 12 03:37:00 CST 2019 0 1365
for循环中嵌套setTimeout,执行顺序和结果该如何理解?

这两天在捣鼓作用域的问题,有的时候知识这个东西真的有点像是牵一发而动全身的感觉。在理解作用域的时候,又看到了一道经典的面试题和例子题。 那就是在for循环中嵌套setTimeout延时,想想之前面试的时候面试官问到我这个问题,然而我当时对这玩意儿根本没有深究,没有去理解;非常草率的回答了,面试官 ...

Thu Aug 17 19:51:00 CST 2017 3 10965
JS中For循环中嵌套setTimeout()方法的执行顺序

在For循环中执行setTimeOut()方法的代码,执行顺序是怎样的呢? 代码如下 应该会有人会说,很简单呀,for循环进行遍历,并且每次有一个输出,那结果应该是0,1,2,3,4。 其实不然,运行上诉代码之后,控制台输出如下:5个5 下面解释下为什么是5个5. ...

Tue Dec 10 21:59:00 CST 2019 0 1367
js经典面试问题:如何让for循环中setTimeout()函数像预想中一样工作?

setTimeout()是js中的一类重要函数,将一段代码延迟一定时间并异步执行。但是这个函数经常不听话。在实践中,可能经常有人碰到类似下面的这种情况: 我们期望的结果是,先隔100毫秒弹出1,再隔100毫秒弹出2。但是跑起来后,alert的两次内容都是数字3,而且紧挨着输出 ...

Sat Feb 18 18:10:00 CST 2017 0 19631
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM