微任务在宏任务后立即执行且优先级高,如Promise回调;宏任务包括setTimeout、I/O等。事件循环先执行同步代码,再处理微任务队列,最后进入下一宏任务。例如,console.log('1')、Promise.then输出'3'、setTimeout输出'2'的顺序为1→4→3→2,因微任务在当前宏任务结束后立即执行。

在JavaScript中,理解微任务(microtask)与宏任务(macrotask)是掌握事件循环(Event Loop)机制的关键。由于JavaScript是单线程语言,它通过事件循环来协调代码的执行顺序,尤其是在处理异步操作时。微任务和宏任务正是这个机制中的两个核心概念。
JavaScript中的任务被分为两大类:宏任务和微任务。它们的主要区别在于执行时机和优先级。
宏任务包括:
微任务包括:
立即学习“Java免费学习笔记(深入)”;
每次事件循环开始时,会先执行一个宏任务,完成后立即清空当前所有的微任务队列,然后再进入下一个宏任务。
事件循环的基本流程如下:
关键点在于:每个宏任务执行完后,都会“清空”当前所有的微任务。
看下面这段代码:
console.log('1'); setTimeout(() => { console.log('2'); }, 0); Promise.resolve().then(() => { console.log('3'); }); console.log('4');输出顺序是:1 → 4 → 3 → 2
解释:
微任务的一个重要特点是:它们在每个宏任务之后立即执行,且具有高优先级。这意味着:
例如使用 queueMicrotask 的递归调用:
let count = 0; function recursiveMicrotask() { if (count输出为:end → microtask 1 → microtask 2 → microtask 3
说明所有微任务都在下一个宏任务前完成。
基本上就这些。掌握微任务与宏任务的执行规则,能帮助你更好理解异步代码的实际运行顺序,避免在开发中出现意料之外的行为。不复杂但容易忽略。
以上就是理解JavaScript中的微任务与宏任务_javascript事件循环的详细内容,更多请关注php中文网其它相关文章!
 
                        
                        java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
 
                 
                                
                                 收藏
收藏
                                                                             
                                
                                 收藏
收藏
                                                                             
                                
                                 收藏
收藏
                                                                            Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号