<aside> 💡 如果你看完解答後,想進一步瞭解每題的詳細解題思路,可以訂閱 ExplainThis 的 E+ 成長計畫。在 E+ 當中,我們有收錄更多常見的題目,並且每一題除了解答,還有附上詳細的思路分析。此外,E+ 有討論專區,任何不懂的問題都可以提問,獲得進一步的解說。

👇 可以在以下網址了解 E+ 成長計畫 **https://www.explainthis.io/zh-hant/e-plus**

👇 更多免費的前端學習資源,可以在 ExplainThis 網站上看到

**https://explainthis.io/**

</aside>

這個文件收錄了前端工程面試,常見的 Promise、Time、函式、陣列操作、閉包、物件、class 程式題。每一題都有題目描述與解答,此外也有標上難度分類。建議還不熟悉前端程式題的人,可以先從 Easy 的開始做起,都做完後再練習 Medium 的題目。

其他類別的題目,可以在 50 題前端程式題大補帖 (上) 中找到。

**備註:**如果你本身有用 Notion, 可以直接複製這個文件到自己的 Notion,就可以自行編輯、做筆記 🙂

<aside> 🔹 Part 3 - Promise 與 Time


<aside> 🔹 Part 4 - 函式 (Function)


<aside> 🔹 Part 5 - 閉包 (Closure)


<aside> 🔹 Part 6 - 物件與類別 (Object and Class)


Part 3 - Promise 與 Time

Day 29. Easy 手寫 sleep


🔸 題目描述

JavaScript 雖然內建了 setTimeout 控制程式暫停與繼續的方法,但使用起來有些繁瑣。請設計一個更流暢的機制,類似其他語言如 Java 和 Python 中的 sleep 函式,同時保持 JavaScript 非同步的特性。

// 可以這樣
console.log('Explain');
await sleep(3000);  // 停 3 秒
console.log('This');

// 或者
console.log('Explain');
sleep(3000).then(() => {
  console.log('This'); // Only logs after 3 seconds
});

💭 分析與思路