24.说一说事件循环Event loop,宏任务与微任务?
得分点:
任务挂起、同步任务执行结束执行队列中的异步任务、执行
script
标签内部代码、setTimeout/setInterval
、ajax
请求、postMessageMessageChannel
、setImmediate、
I/O(Node.js)Promise
、MutonObserver
、Object.observe
、process.nextTick
(Node.js)每个宏任务中都包含了一个微任务队列
标准回答
- 浏览器的
事件循环
:执行js
代码的时候,遇见同步任务,直接推入调用栈中执行,遇到异步任务,将该任务挂起,等到异步任务有返回之后推入到任务队列中,当调用栈中的所有同步任务全部执行完成,将任务队列中的任务按顺序一个一个的推入并执行,重复执行这一系列的行为。 异步任务
又分为