iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
JavaScript

30 天新世代 JavaScript 自我學習指南 系列

轉職接觸 JavaScript 三年,過去多在用 ES6/ES8 這批已經成熟的語法,或是各種包裝好的語法糖——能用就好,卻沒有真正回頭搞懂底層協議在解決什麼問題。

這系列想先複習那些自己還不夠熟、或當初被跳過的舊有特性與規範,像是迭代協議、Generator 甚至是非同步特性這些基礎,再延伸到 JS 新世代ES2023–2026 這幾年陸續推出的新特性,看看它們是怎麼建立在這些既有機制之上的並且如何使用。

AI 輔助開發愈來愈普及的現在,還是想留一點自己動手拆解、探索語言底層的樂趣, 以這系列延續上一次參賽時那趟自我探索學習之旅的精神。

參賽天數 22 天 | 共 22 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文
DAY 11

Day 11|await 暫停的到底是什麼?async function 如何交還控制權

摘要 一句摘要:await 不會暫停整個 JavaScript;它只暫停目前 async function 中依賴結果的後半段,將控制權交還給呼叫端,並在 Pr...

2026-09-15 ‧ 由 Rafael 分享
DAY 12

Day 12|從 async Iterator 協議到理解 for await...of

摘要 一句摘要:同步 Iterator 的 next() 立即回傳 Iterator Result;Async Iterator 則用 Promise 表示...

2026-09-16 ‧ 由 Rafael 分享
DAY 13

Day 13|從 Iterator 走向 Web Streams 的世界: 認識 Readable、Writable、Transform

摘要 一句摘要:Stream 描述資料隨時間逐步流動的模型;Web Streams 的三個名稱則描述資料管線中的角色與端點。一條 stream 不必同時經過...

2026-09-17 ‧ 由 Rafael 分享
DAY 14

Day 14|怎麼讀一條 ReadableStream?從 getReader、read 到 for await...of

摘要 一句摘要:Day 13 的 ReadableStream 是給 consumer 讀的出口;取得 reader 的獨占讀取權後,可用 read() 逐筆等...

2026-09-18 ‧ 由 Rafael 分享
DAY 15

Day 15|Web Stream 資料流的另一種收法:SSE 與 EventSource

摘要 SSE (Server Sent Events)讓 server 可以一直主動送資料給瀏覽器。它不是什麼特別的協定,就是一段普通的 HTTP 回應,裡面放...

2026-09-19 ‧ 由 Rafael 分享
DAY 16

Day 16|深入 Stream 本體:從 chunk、controller 到讀懂 Hono 的 StreamingApi

摘要 Stream 的 API 看起來很多,但其實圍著兩個字打轉——chunk(流過的一筆資料)和 controller(你把資料交出去的窗口);看懂這兩個,R...

2026-09-20 ‧ 由 Rafael 分享
DAY 17

Day 17|已經有 for await...of,為什麼還需要 Array.fromAsync?

摘要 ES2026 的 Array.fromAsync() 把「用 for await...of 讀完整個來源並逐筆 push()」整理成標準 API,適合將最...

2026-09-21 ‧ 由 Rafael 分享
DAY 18

Day 18|Promise.withResolvers:理解從「資料抵達」到「資料流到達可用節點」的轉變

摘要 以前常把 Promise 想成「資料一回來、fulfilled 就結束」。但有一種模式,是希望完成 Promise 的開關(resolve / rejec...

2026-09-22 ‧ 由 Rafael 分享
DAY 19

Day 19|從一個未來結果到一串未來資料:非同步資料流學習回顧

摘要: 用「工作何時開始、結果如何交付、錯誤往哪裡走、誰能停止工作」四個問題,分清 Promise 的一次 settlement、Async Iterator...

2026-09-23 ‧ 由 Rafael 分享
DAY 20

Day 20|Object、Map、Set:那些以前忽略的資料模型規則

摘要: 從 key、相等判斷與迭代順序切入,建立 Object、Map、Set 三種資料模型的選擇準則。 前置知識:會使用 Object、Array 與基本...

2026-09-24 ‧ 由 Rafael 分享