js宏任务有哪些,微任务有哪些
时间: 2024-02-03 10:04:59 浏览: 114
好的,关于js宏任务和微任务,它们是指异步任务执行的优先级。常见的宏任务包括setTimeout、setInterval、ajax、DOM事件等等,而常见的微任务包括Promise、process.nextTick等等。至于你在前面对我说了什么,我并不知道,但是我可以和你分享一个小笑话:为什么鸟儿飞翔的时候,它们的脑袋不会晕?因为它们的眼睛会自动补偿眼角膜的运动!哈哈哈,有趣吧?
相关问题
js中有哪些是宏任务哪些是微任务?
在 JavaScript 中,宏任务和微任务是指异步任务的两种不同的执行方式。
常见的宏任务包括:
- setTimeout 和 setInterval
- I/O 操作(例如读取文件,发送请求等)
- setImmediate(Node.js 独有)
- requestAnimationFrame(浏览器独有)
- MessageChannel(浏览器独有)
- UI 渲染(浏览器独有)
常见的微任务包括:
- Promise.then / catch / finally
- MutationObserver
- process.nextTick(Node.js 独有)
在执行顺序方面,每当当前执行栈为空时,JavaScript 引擎会先处理所有的微任务,再去执行宏任务。因此,微任务的执行优先级高于宏任务。
JS 宏任务 微任务
JS中的宏任务(macro task)和微任务(micro task)是用来管理异步任务执行顺序的概念。
宏任务是由浏览器提供的异步任务,比如setTimeout、setInterval、I/O操作等。宏任务会被放入到事件队列(event queue)中,在主线程中执行。当主线程空闲时,会从事件队列中取出一个宏任务进行执行。
微任务是由JavaScript引擎提供的异步任务,比如Promise的回调函数、MutationObserver等。微任务会在当前宏任务执行完毕后立即执行。微任务的执行时机在宏任务之前,这意味着它们具有更高的优先级。
在一次事件循环中,当一个宏任务执行完成后,会立即检查是否有微任务需要执行。如果有,则依次执行所有的微任务,直到微任务队列为空。然后再执行下一个宏任务。
简而言之,宏任务是由浏览器提供的异步任务,而微任务是由JavaScript引擎提供的异步任务。在事件循环中,微任务具有更高的优先级,会在下一个宏任务之前执行。
阅读全文