首页 抖音真文案网文章正文

微任务 :javascript的执行顺序是怎样的?

抖音真文案网 2022年07月13日 13:51 138 admin

这个问题其实很复杂,搞清楚需要花点时间,我简单的说一下:

1、首先js本身是一种单线程语言,意味着它同一时间只做一件事情,代码也会从上到下顺序执行

2、js在执行之前有个预处理的过程,会把var声明的变量和函数声明提升到执行上下文的顶部,所以在它们被定义之前是可以拿到它们的声明的,这点需要注意

3、js在执行过程中,会遇到同步和异步两种任务

4、同步任务会等到它有执行结果才会继续往下执行

5、异步任务比如IO请求、事件、定时器等,js的主线程不会等待它们的运行结果,就会继续往下走(有些异步任务依赖浏览器的多线程能力比如请求等)

6、这些异步任务会被放入任务队列,主线程的回调函数会被挂起,等到主线程执行完毕,会去循环任务队列中是否有完成的异步任务,如果有就会把它推入主线程并执行相应的回调函数,直到任务队列被清空

7、任务队列又分为宏任务和微任务,宏任务包括script整体代码、定时器等,微任务包括process.nextick

、promise等

8、js引擎首先从宏任务中取出第一个任务,执行完毕后,将微任务中的所有任务取出,按顺序全部执行;按这样的节奏循环往复,直到两个队列中的任务都取完。

我说的比较简单,自己可以去网上搜索更详细的答案!

发表评论

陕ICP备2022006270号-1 网站地图 抖音真文案网