首頁
學習紀錄
遊戲心得影視Life書單案件檔案
Side Projects委託作品與二創互動實驗場
Kurau
百百 BLOG
首頁
學習紀錄
遊戲心得影視Life書單案件檔案
Side Projects委託作品與二創互動實驗場
Kurau

Kurau Blog

「隨心而寫,真真假假,都是我」

一個記錄生活、輸出興趣的個人空間。
遊戲、影視、閱讀、學習……每一段體驗都值得留下文字。

頁面導覽

  • 學習紀錄
  • 遊戲心得
  • 影視Life
  • 書單
  • 委託作品與二創
  • Kurau
  • 合作邀請

找到我

歡迎來 Discord 找我聊天!

“曾經發生的事不可能忘記,只是暫時想不起來而已。”-《神隱少女》

© 2026 Kurau All rights reserved

面試考題

聽過Event Loop嗎

By Kurau·Updated 2026-05-09·4 分鐘閱讀

聽過Event Loop嗎 封面圖

Event Loop是JavaScript中協調執行緒的一個機制。它保證每次僅執行一個任務,並且在執行任務之間允許訊息佇列中的其他訊息進行排程。事件迴圈是JavaScript的核心概念,它保證了程式碼是非阻塞的,並且在後臺執行任務,而不影響頁面的響應性。

Promise.resolve().then(()=>{ console.log('Promise1')   setTimeout(()=>{
  console.log('setTimeout2') },0)
})
setTimeout(()=>{
console.log('setTimeout1') Promise.resolve().then(()=>{   console.log('Promise2')     })
},0)
JavaScript
  • 一開始執行棧空,我們可以把執行棧認為是一個儲存函式呼叫的棧結構,遵循先進後出的原則。微任務佇列空,宏任務佇列裡有且只有一個 script 指令碼(整體程式碼)。

  • 全域性上下文(script 標籤)被推入執行棧,同步程式碼執行。在執行的過程中,會先判斷是同步任務還是非同步任務,也會產生新的 macro-task 與 micro-task,它們會分別被推入各自的任務佇列裡。同步程式碼執行完了,script 指令碼會被移出 macro 佇列,這個過程本質上是佇列的 macro-task 的執行和出隊的過程。

  • 上一步我們出隊的是一個 macro-task,這一步我們處理的是 micro-task。但需要注意的是:當 macro-task 出隊時,任務是一個一個執行的;而 micro-task 出隊時,任務是一隊一隊執行的。因此,我們處理 micro 佇列這一步,會逐個執行佇列中的任務並把它出隊,直到佇列被清空。宏任務佇列可以有多個,微任務佇列只有一個。

  • 執行渲染操作,更新介面

  • 檢查是否存在 Web worker 任務,如果有,則對其進行處理

  • 上述過程迴圈往復,直到兩個佇列都清空

最棒的解釋

What the heck is the event loop anyway? | Philip Roberts | JSConf EU
JavaScript programmers like to use words like, "event-loop", "non-blocking", "callback", "asynchronous", "single-threaded" and "concurrency". https://www.youtube.com/watch?v=8aGhZQkoFbQ

https://www.youtube.com/watch?v=8aGhZQkoFbQ

event loop ⇒: 如果stack 是空的 他就會把task queue的第一個值放上去~stack

JavaScript Event Loop 視覺化示意 cb 回呼進入 task queue

目錄

    ◆ 相關文章

    • 堆疊Stack與佇列Queue

      2026-05-09
    • Promise函式

      Promise函式

      2026-05-09
    • Class Components 介紹

      Class Components 介紹

      2026-05-09
    • 請解釋異步函數Asynchronous

      2026-05-09
    ← 上一篇網頁上實現markdown編輯下一篇 →解題思維

    ◆ 關於作者

    Kurau

    個人寫作 / 創作的 SoT,記錄遊戲、影視、學習與生活。

    更多 Kurau 的文章