js运行机制 (包括宏任务微任务,同步异步,事件循环机制Event Loop)面试常问

Posted 剑非出我心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js运行机制 (包括宏任务微任务,同步异步,事件循环机制Event Loop)面试常问相关的知识,希望对你有一定的参考价值。

文章目录

  • 前言
  • 单线程
  • 同步异步
  • 事件循环机制
  • 宏任务微任务



前言

都到一封私信,相信很多人对一些js运行机制,一看到都是很头疼的问题,那么博主今天彻底整理了一篇js运行机制类的问题,并且分段进行封装,哪里不会点哪里。


提示:以下是本篇文章正文内容,下面案例可供参考



一、单线程

首先,我们都知道js的运行顺序,js是一门单线程语言,js是单线程,js是单线程,js是单线程。一切的多线程,都是通过单线程模拟出来的。




二、同步、异步



1.什么是同步

同步就代表着,假设你现在人在国外,身上并没有现金,但是国外只支持现金,这个时候你需要先往家里打电话,家里人再接了电话,家里人再去银行,银行再向你的账户汇款,这一系列的过程都不可以省略的前提下,叫做同步。



2.什么是异步

那么现在还是上面的例子,还是人在国外,身上没钱,但是这时候呢,我通过发短信的方式联系家里人,家里人看到后自动就会给我汇款,我这时候已经完完全全没有必要一直等着家里人接电话,我发完短信后可以去做其他的事情,从而大大提高了工作效率。


三、事件循环机制

                 这里有掘金的文章里的大佬。他叫:ssssyoki 点击这里进入他的帖子 

 四、宏任务微任务

再次感谢 ssssyoki 的两张图,真的总结的非常好。

这里牵扯到的问题是一个 宏任务微任务执行顺序的问题,你像 setTimeout 、setInterval 都是宏任务promise .then .catch微任务,当这个任务执行的时候,先执行宏任务里的代码,再执行宏任务里面的微任务,只有上一个宏任务执行完毕以后,才会执行下一个宏任务

以上是关于js运行机制 (包括宏任务微任务,同步异步,事件循环机制Event Loop)面试常问的主要内容,如果未能解决你的问题,请参考以下文章

js事件循环运行机制

js事件循环运行机制

JS事件循环机制(宏任务,微任务)

JS事件循环机制(宏任务,微任务)

20230515学习笔记——js中的同步任务与异步任务,宏任务与微任务

JS事件循环机制(event loop)之宏任务/微任务