龙空技术网

一道关于JavaScript事件循环的题,了解一下

盆盆儿web前端 439

前言:

此刻看官们对“js计时器循环”都比较注意,各位老铁们都需要知道一些“js计时器循环”的相关文章。那么小编也在网摘上网罗了一些关于“js计时器循环””的相关资讯,希望你们能喜欢,朋友们快快来学习一下吧!

接这个系列的上一篇文章,搞懂这道题,以后遇到回调深坑的面试不要慌,我们来看看下一个问题:

setTimeout(()=>{ console.log("A")},1000);let now = Date.now();while(Date.now()-now<5000){}setTimeout(()=>{ console.log("B");},1000);console.log("C");

上面的代码在浏览器环境中执行后,输出的结果是什么?

分析

代码中的while循环很容易给人误导,可能有人会认为:

代码在这个while循环等待5秒中才继续往下执行,这时上面的等待1秒计时器的时间已经到了,所以顺序会是 A->B->C,如果你也是这样认为的,那说明你对JavaScript的事件循环还不了解,建议多去看看相关的文章。

其实在这里,只需要明白一点:JS在开启一个新的事件循环之前,都要先执行完同步的代码,

所以上面代码的执行结果应该是 C->A->B

标签: #js计时器循环