前端面试 js事件循环机制
时间: 2024-10-21 12:05:07
(部分内容来自网络,其真实性存疑,为了避免对您造成误导,请谨慎甄别。)
js事件循环机制
JavaScript的事件循环(Event Loop)是其异步执行的核心机制之一,用于处理非阻塞I/O操作和回调函数。简单来说,它是浏览器或Node.js环境中的一个重要调度器,负责监听并管理任务队列。
任务队列:分为两种类型:宏任务(macro-task)和微任务(micro-task)。宏任务包括setTimeout、setInterval、DOM操作、网络请求等;微任务如Promise.resolve、MutationObserver等。
执行栈:当前正在运行的同步代码所构成的栈。
事件循环过程:
执行栈中的同步代码执行完毕后,会检查是否有微任务,如果有则先执行微任务直到队列为空。
接着,执行下一个宏任务。这个过程中如果遇到新的微任务,会插入到微任务队列中,并继续执行当前宏任务。
当宏任务完成,再次检查微任务队列,如有微任务,则执行它们,如此反复。
轮询检测:事件循环不是被动等待,而是通过定期的轮询检查是否有可执行的任务。
了解了事件循环机制有助于优化异步代码,避免阻塞UI线程,提高应用性能。