手机版

示例详细解释了JavaScript中setTimeout函数的执行顺序

时间:2021-09-04 来源:互联网 编辑:宝哥软件园 浏览:

SetTimeout,一个前端工程师必须处理的功能。它看起来非常简单,有一个非凡的名字——计时器。其实网上有很多关于JavaScript中setTimeout的文章,但我总觉得例子不够直接具体。因此,我写了一个简单的例子并解释了它,希望我们能理解setTimeout是如何实现的。下面的话就不多说了,我们来看看详细的介绍:

示例代码如下:

可变时间1=新日期()。getTime();console.log(1,time 1);setTimeout(函数(){ var time4=new Date()。getTime();console.log(4,time 4);for(var a=0;a10000000000a){ a=a 1;} var time2=新日期()。getTime();console.log(2,time 2);},2000);setTimeout(函数(){ var time3=new Date()。getTime();console.log(3,time 3);},1000);setTimeout(函数(){ var time5=new Date()。getTime();console.log(5,time 5);},3000);setTimeout(函数(){ var time6=new Date()。getTime();console.log(6,time 6);},14000);代码非常简单,每个人都必须理解。执行结果如下:

说明:setTimeout是一个异步执行函数。程序执行console.log(1,time1)后;如果遇到setTimeout,会把函数放在等待队列中,等待当前主程序执行setTimeout。因为后面的都是setTimeout,所以都会被放到等待队列中~ ~ ~

那么谁将首先执行这些队列中的函数呢?例如,它是根据setTimeout中的第二个参数(延迟时间)确定的

setTimeout(函数(){ var time3=new Date()。getTime();console.log(3,time 3);},1000);那么这段代码将在主程序执行1000毫秒后执行。如果延迟时间为2000,则该代码将在主程序执行2000毫秒后执行。请记住,延迟时间总是相对于主程序执行的时间来计算的,多次设置超时的顺序也是由这个延迟时间决定的。如果要花很多时间才能达成协议呢?可以参考上图中执行结果的数字2和数字5对应的时间。由于js是一个单线程,在执行这个setTimeout之后,程序将在下一个setTimeout之前执行。无论下一个setTimeout的延迟时间是多少,如果这两个setTimeout之间的差异小于第一个setTimeout所消耗的时间,程序将在执行完成后立即等待这个setTimeout执行下一个setTimeout。如果差值大于经过的时间,可以根据与主程序约定的延迟执行(setTimeout中的第二个参数)

摘要

以上就是本文的全部内容。希望本文的内容能给你的学习或工作带来一些帮助。有问题可以留言交流。谢谢你的支持。

版权声明:示例详细解释了JavaScript中setTimeout函数的执行顺序是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。