最新文章
混合 Dev 和 Life 的所有最新內容
59 篇2026-05-0912 分鐘閱讀
介紹 JavaScript 第三種原始型別強制轉換 ToBoolean,說明 falsy 值的判斷邏輯,並透過捐款欄位範例,解析為何寬鬆相等(==)會因觸發 ToNumber 導致非預期結果,以及嚴格相等(===)如何避免這個問題。
2026-05-086 分鐘閱讀
JavaScript 多數數學運算子都會觸發 ToNumber,但加法運算子(+)只要一側是字串,就會改觸發 ToString 並執行字串串接。本文整理各運算子的強制轉換規則差異,並示範如何用一元加號或 Number() 在 DOM 邊界手動控制型別。
2026-05-0711 分鐘閱讀
介紹 JavaScript 型別強制轉換的設計背景,說明運算子與函式的本質差異、DOM 輸入為何永遠是字串,以及 ToNumber 如何自動處理混合型別的數學運算。
JavaScript Hard Parts v3
#JavaScript #TypeCoercion #Metaprogramming #frontendMasters #javaScriptTheHardPartsV3 2026-05-068 分鐘閱讀
說明 Closure 如何成為 JavaScript 進階功能的實作基礎,涵蓋 once、memoize、Iterator、Generator、Module Pattern 與非同步 Callback 的設計原理。
2026-05-0511 分鐘閱讀
釐清 closure 的常見誤解:外層函式本身沒有記憶,被回傳的函式攜帶的是定義當下的資料快照。說明本地記憶體與背包的差異、背包的私有性與持久性,以及如何透過重新指派變數釋放背包記憶體,最後延伸至 IIFE 與 Module Pattern 的核心原理。
2026-05-0412 分鐘閱讀
每次呼叫外層函式都會產生獨立的 closure,彼此狀態互不影響。本文透過程式碼範例,說明變數定義在本地、背包或全域時的不同行為,以及 JavaScript 查找變數的完整優先順序。
2026-05-0311 分鐘閱讀
拆解 JavaScript Closure 的底層實作:隱藏屬性 Scope 如何儲存背包、Closed Over Variable Environment(COVE)的正式定義,以及 Lexical Scoping 為什麼是 Closure 能夠存在的根本原因。
2026-05-028 分鐘閱讀
剖析 JavaScript Closure(閉包)的背包機制:為什麼只打包被參照的變數、資料如何保持私有,以及它在 Module Pattern 與非同步程式中扮演的關鍵角色。
2026-05-0110 分鐘閱讀
函式被定義時,會與周圍的資料產生隱藏連結。即使父執行環境已關閉,函式仍能透過這份附加的資料——也就是「背包(Backpack)」——持續存取原本的狀態。
MIT Licensed | Copyright © 2025-present Wen-Hsiu's Blog

