一天一题:简单说说JS事件循环机制

298 阅读1分钟

JavaScript的执行机制简单来说就先执行同步代码,然后执行异步代码,而异步的代码里面又分为宏任务代码和微任务代码,先执行微任务,然后执行宏任务。首先会将所有JavaScript作为一个宏任务执行,遇到同步的代码就执行,然后开始分配任务,遇到宏任务就将它的回调分配到宏任务的队列里,遇到微任务的回调就分配到微任务的队列里,然后开始执行所有的微任务。执行微任务的过程还是遵循先同步然后分配异步任务的顺序,微任务执行完毕之后,一次Event-Loop的Tick就算完成了。接着挨个去执行分配好的宏任务,在每个宏任务里又先同步后分配异步任务,完成下一次Tick,循环往复直到所有的任务全部执行完成。

微任务包括:process.nextTickpromiseMutationObserver

宏任务包括:scriptsetTimeoutsetIntervalsetImmediateI/OUI rendering