1.事件执行顺序
同步任务->异步微任务->DOM渲染->异步宏任务
2.任务分类
同步任务:依次执行的任务,不耗时的任务
异步任务:又分为微任务和宏任务
微任务:1.Promise.then() .catch() .finally()
2. MutationObserver
3. Object.observe
宏任务:1.setTimeout和setInterval
2.发起ajax请求
3.DOM事件
3.事件循环
JS执行代码时遇到同步任务,直接推至执行栈中运行。
当遇到异步代码时,交由相应的webAPI进行处理,异步任务处理完后,将其推至异步队列中进行排队等待。
若执行栈为空,JS会查询任务队列,从中取出异步任务并执行。
其中异步任务又分为微任务和宏任务,每一个宏任务,后面都可以跟一个微任务队列,如果微任务队列中有指令或方法,那么就会执行;如果没有,则开始执行下一个宏任务,直到所有的宏任务执行完为止。即在同一等级下先执行微任务,再执行宏任务。
JS运行机制(执行顺序)即事件循环