轉職接觸 JavaScript 三年,過去多在用 ES6/ES8 這批已經成熟的語法,或是各種包裝好的語法糖——能用就好,卻沒有真正回頭搞懂底層協議在解決什麼問題。
這系列想先複習那些自己還不夠熟、或當初被跳過的舊有特性與規範,像是迭代協議、Generator 甚至是非同步特性這些基礎,再延伸到 JS 新世代ES2023–2026 這幾年陸續推出的新特性,看看它們是怎麼建立在這些既有機制之上的並且如何使用。
AI 輔助開發愈來愈普及的現在,還是想留一點自己動手拆解、探索語言底層的樂趣, 以這系列延續上一次參賽時那趟自我探索學習之旅的精神。
摘要 一句摘要:await 不會暫停整個 JavaScript;它只暫停目前 async function 中依賴結果的後半段,將控制權交還給呼叫端,並在 Pr...
摘要 一句摘要:同步 Iterator 的 next() 立即回傳 Iterator Result;Async Iterator 則用 Promise 表示...
摘要 一句摘要:Stream 描述資料隨時間逐步流動的模型;Web Streams 的三個名稱則描述資料管線中的角色與端點。一條 stream 不必同時經過...
摘要 一句摘要:Day 13 的 ReadableStream 是給 consumer 讀的出口;取得 reader 的獨占讀取權後,可用 read() 逐筆等...
摘要 SSE (Server Sent Events)讓 server 可以一直主動送資料給瀏覽器。它不是什麼特別的協定,就是一段普通的 HTTP 回應,裡面放...
摘要 Stream 的 API 看起來很多,但其實圍著兩個字打轉——chunk(流過的一筆資料)和 controller(你把資料交出去的窗口);看懂這兩個,R...
摘要 ES2026 的 Array.fromAsync() 把「用 for await...of 讀完整個來源並逐筆 push()」整理成標準 API,適合將最...
摘要 以前常把 Promise 想成「資料一回來、fulfilled 就結束」。但有一種模式,是希望完成 Promise 的開關(resolve / rejec...
摘要: 用「工作何時開始、結果如何交付、錯誤往哪裡走、誰能停止工作」四個問題,分清 Promise 的一次 settlement、Async Iterator...
摘要: 從 key、相等判斷與迭代順序切入,建立 Object、Map、Set 三種資料模型的選擇準則。 前置知識:會使用 Object、Array 與基本...