前言
这篇文章主要介绍JS的执行机制以及宏任务与微任务
一、JS的执行机制
文字解释
js代码在执行后会把任务分类为同步任务和异步任务 JS优先执行同步
主线程执行栈会优先执行同步任务 异步任务会被放入一个特殊的处理程序中 满足条件会被放入任务队列等待
直到同步任务都被执行完 就会去队列找优先满足条件的异步任务 放入主线程执行
常见异步
事件 定时器 Ajax请求 文件操作
二、宏任务与微任务
宏任务: 一个文件里可以会有多个宏任务,
- 首先一整个js代码块为第一个宏任务
-
setTimeout
-
setInterval
-
Ajax
-
事件
微任务: 宏任务中的一个部分,它的执行时机是在同步代码执行之后,下一个宏任务执行之前。总结起来,微任务有:
- Promise.then
- Promise async/await
- process.nextTick(Node.js 环境)
宏任务和微任务执行机制
JS优先执行同步任务,然后执行微任务,最后执行宏任务。
总结