内容提要
JavaScript是单线程语言,但通过浏览器的多线程和多进程能力实现异步操作。任务分为同步、微任务和宏任务,执行顺序为同步->微任务->宏任务。微任务示例包括Promise.then(),宏任务示例包括setTimeout。process.nextTick()在同步代码后、微任务前执行。
关键要点
-
JavaScript是单线程语言,但可以通过浏览器的多线程和多进程能力实现异步操作。
-
JavaScript任务分为三类:同步任务、微任务和宏任务,执行顺序为同步->微任务->宏任务。
-
同步代码首先执行,微任务被放入微任务队列,宏任务被放入宏任务队列,等待相应任务完成。
-
常见的微任务包括Promise.then()、Promise.catch()、new MutationObserver()和process.nextTick()。
-
常见的宏任务包括setTimeout、setInterval和requestAnimationFrame()。
-
process.nextTick()既不是微任务也不是宏任务,它在同步代码后、微任务前执行。
延伸问答
JavaScript如何实现异步操作?
JavaScript是单线程语言,但通过浏览器的多线程和多进程能力来实现异步操作。
JavaScript中的任务类型有哪些?
JavaScript中的任务分为同步任务、微任务和宏任务。
微任务和宏任务的执行顺序是怎样的?
执行顺序为同步任务先执行,然后是微任务,最后是宏任务。
什么是process.nextTick()?
process.nextTick()在同步代码后、微任务前执行,既不是微任务也不是宏任务。
常见的微任务有哪些?
常见的微任务包括Promise.then()、Promise.catch()、new MutationObserver()和process.nextTick()。
宏任务的例子是什么?
常见的宏任务包括setTimeout、setInterval和requestAnimationFrame()。