宏任务
浏览器为了能够使得JS内部task与DOM任务能够有序的执行,会在一个task执行结束后,在下一个 task 执行开始前,对页面进行重新渲染,鼠标点击会触发一个事件回调,需要执行一个宏任务,然后解析HTMl
setTimeout,setInterval,I/O,requestAnimationFrame,setImmediate
微任务
微任务通常来说就是需要在当前 task 执行结束后立即执行的任务,比如对一系列动作做出反馈,或或者是需要异步的执行任务而又不需要分配一个新的 task,这样便可以减小一点性能的开销。
process.nextTick,MutationObserver,Promise.then catch finally