本文是对JavaScript运行机制的一个总结性文章,不对一些设计目的做描述,如有不足,希望能够帮助指正
一、JavaScript运行机制
我们先来看一张图大致了解JavaScript的运行机制
异步执行步骤如下:
1.所有同步任务都在主线程
中运行,异步任务会挂起,当异步任务有结果的时候就会在任务队列中放置一个事件
(callback)
2.当主线中的同步任务执行完了,会到任务队列中读取可以执行的任务,并放到主线程执行
3.跳到步骤一
二、关键词
Tick
主线程的执行过程就是一个 tick,当主线程的任务被执行完后,就是一个tick结束,然后我们就要进入nextTick
宏任务和微任务
任务队列(消息队列)中存放的是一个个的任务(task),规范中规定 task 分为两大类,分别是 macro task(宏任务)
和micro task(微任务)
,并且每个macro task结束后,都要清空所有的 micro task
,也就是micro task中存放的任务是执行一个macro task所产生的。
macro task包括:s