微任务和宏任务面试题
时间: 2023-11-10 14:02:56 浏览: 75
Vue 20 道面试题及答案.docx
微任务和宏任务是JavaScript中一种处理异步操作的机制。它们是用来管理和调度异步代码执行的方式。
微任务(Microtask)是指那些需要在当前任务执行结束后立即执行的任务。在JavaScript中,微任务可以通过Promise、MutationObserver和queueMicrotask函数来创建。微任务的执行时机是在当前任务执行完毕后,在下一个任务开始之前。
宏任务(Macrotask)是指那些需要在事件循环中等待一段时间后执行的任务。常见的宏任务包括setTimeout、setInterval、I/O操作、UI渲染等。宏任务的执行时机是在下一个事件循环开始时。
常见的例子可以是:
```javascript
console.log('1');
setTimeout(function() {
console.log('2');
}, 0);
console.log('3');
Promise.resolve().then(function() {
console.log('4');
});
console.log('5');
```
输出结果为:
1
3
5
4
2
解释:
- 1、3、5是同步代码,按顺序输出。
- 4是微任务,会在同步代码执行完毕后立即执行。
- 2是宏任务,会在下一个事件循环开始时执行。
阅读全文