1、两者的任务都会放在任务队列中,等待某个时间被主线程执行。
其实任务队列分为宏任务队列和微任务队列,分别是宏任务和微任务。
2、macrotask(宏任务)浏览器可以在下一个macrotask执行开始之前渲染页面。
触发macrotask任务的操作包括:
script(整体代码)
settimeout,setInterval,setimediate(Node独有)
I/O,UI交互事件(浏览器独有)
requestAnimationFrame(浏览器独有)
Message,MessageChannel。
3、microtask(微任务)在页面渲染之前立即执行的任务。
触发microtask任务的操作包括:
Promise.then
MutationObserver
process.nextTick(Node环境)
以上就是js macrotask和microtask的比较,希望对大家有所帮助。更多js学习指路:
推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。