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

Kurau Blog

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

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

頁面導覽

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

找到我

歡迎來 Discord 找我聊天!

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

© 2026 Kurau All rights reserved

面試考題

請解釋異步函數Asynchronous

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

非同步函式 (asynchronous function) 是 JavaScript 中的一種特殊函式,它可以在不阻塞主執行緒的情況下執行任務。

非同步函式的執行流程是這樣的:

  1. 主執行緒會先執行非同步函式之前的程式碼。

  2. 非同步函式被呼叫時,主執行緒會把它加入事件佇列,並繼續執行之後的程式碼。

  3. 主執行緒完成其他工作之後,會再次檢查事件佇列,如果有非同步函式在佇列中,就會執行它。

非同步函式常常和回撥函式 (callback function) 配合使用,當非同步函式執行完成後,就會呼叫回撥函式,以通知主執行緒非同步函式的工作已經完成。

例如:

setTimeout(() => {
  console.log("Hello, World!");
}, 1000);
console.log("Start...");
JavaScript

在這個例子中,setTimeout 是一個非同步函式,它會在一秒鐘之後執行console.log("Hello, World!"),而 console.log("Start...")是同步程式碼,會先執行,所以會首先顯示 "Start..." ,一秒後才會顯示 "Hello, World!"

非同步程式設計使得 JavaScript 不會被長時間執行的程式阻塞,能夠做到不卡住瀏覽器,提高使用者體驗。

Async function-Await 函式

Callback functions 回撥函式:是一種特殊的函式,它可以作為引數傳遞到其他函式中,然後當特定事件完成時,將它作為回撥函式呼叫。

Generator functions 生成器函式:是一種特殊的函式,它可以暫停和恢複函式的執行,可以用來在處理長時間執行的操作(例如 I/O 操作)時使程式碼看起來更同步。

Promise函式

都是非同步函式

這些非同步函式的選擇取決於您的需求。如果您需要在後臺執行長時間執行的任務並在完成時進行回撥,則 Callback functions 是一個很好的選擇。如果您需要更加同步地管理非同步操作,那麼 Async/Await 或 Promises 是更好的選擇。

目錄

    ◆ 相關文章

    • Promise函式

      Promise函式

      2026-05-09
    • Class Components 介紹

      Class Components 介紹

      2026-05-09
    • 聽過Event Loop嗎

      聽過Event Loop嗎

      2026-05-09
    • Async function-Await 函式

      2026-06-02
    ← 上一篇說說reduce() filter() map()的效果下一篇 →BFS和DFS

    ◆ 關於作者

    Kurau

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

    更多 Kurau 的文章