Dev
前端技術、踩坑紀錄與學習筆記
148 篇2026-06-2014 分鐘閱讀
破解「let 不提升」的常見說法:let 與 const 確實提升,但不像 var 那樣在進入範疇時自動初始化為 undefined,而是保持未初始化狀態直到宣告那一行。說明 TDZ 的由來,以及函式表達式為什麼不像函式宣告那樣提升。
Deep JavaScript Foundations v3
#JavaScript #frontendMasters #deepJavaScriptFoundationsV3 #Hoisting #TDZ 2026-06-2011 分鐘閱讀
說明提升(Hoisting)是描述詞彙範疇的比喻,而非程式碼被實際移動的機制。用兩階段處理模型解釋 var 宣告與函式宣告的差異,以及為什麼函式宣告可以在宣告位置前呼叫,函式表達式不行。
2026-06-1910 分鐘閱讀
說明 const 的真正語意:它防止的是重新賦值,而非值的可變性。整理 Kyle Simpson 對 const 的保守立場——只用於不可變的原始值字面量——以及三種宣告的建議優先順序。
Deep JavaScript Foundations v3
#JavaScript #frontendMasters #deepJavaScriptFoundationsV3 #Scope #BlockScope 2026-06-198 分鐘閱讀
說明為短命變數主動建立專屬 let 區塊的做法:用大括號縮小變數的生命週期,並把宣告和開括號放在同一行讓意圖立即清楚。這不是新發明,而是其他有區塊範疇語言幾十年來的常見做法。
Deep JavaScript Foundations v3
#JavaScript #frontendMasters #deepJavaScriptFoundationsV3 #Scope #BlockScope 2026-06-184 分鐘閱讀
說明 var 與 let 的語意分工:var 表達「屬於整個函式」、let 表達「屬於這個區塊」。整理 var 仍然有價值的三個具體場景,以及為什麼「let is the new var」是錯誤的建議。
Deep JavaScript Foundations v3
#JavaScript #frontendMasters #deepJavaScriptFoundationsV3 #Scope #BlockScope 2026-06-1810 分鐘閱讀
介紹區塊範疇的正確使用方式:大括號只有包含 let 或 const 才成為範疇、let 應用在已經在設計上想限制變數存活範圍的地方,以及為什麼全域搜尋取代 var 換 let 是錯誤的做法。
Deep JavaScript Foundations v3
#JavaScript #frontendMasters #deepJavaScriptFoundationsV3 #Scope #BlockScope 2026-06-1713 分鐘閱讀
介紹 IIFE(立即調用函式表達式)的推導邏輯與正式定義:如何建立臨時範疇而不污染外層、為什麼 IIFE 也應該命名,以及把 try/catch 陳述式轉為表達式的進階用途。
Deep JavaScript Foundations v3
#JavaScript #frontendMasters #deepJavaScriptFoundationsV3 #Scope #IIFE 2026-06-1710 分鐘閱讀
介紹函式範疇最重要的實際應用:隱藏實作細節。說明支撐這個設計的最小暴露原則(名稱衝突、誤用防護、重構自由),以及用具名函式建立範疇的侷限,和下一步推導 IIFE 的起點。
2026-06-169 分鐘閱讀
將詞彙範疇轉化為視覺模型:用「氣泡」比喻嚴格巢狀的範疇邊界,說明為什麼編譯期就能確定變數來源讓引擎更有效率,以及 ES Levels 插件的實際用途與已知問題。
Deep JavaScript Foundations v3
#JavaScript #frontendMasters #deepJavaScriptFoundationsV3 #Scope #LexicalScope 2026-06-167 分鐘閱讀
給詞彙範疇(Lexical Scope)一個正式定義:由編譯期決定、作者時間固定、執行期不受影響的範疇模型。並透過對比動態範疇(以 Bash Script 為例)來加深理解兩者的本質差異。
Deep JavaScript Foundations v3
#JavaScript #frontendMasters #deepJavaScriptFoundationsV3 #Scope #LexicalScope MIT Licensed | Copyright © 2025-present Wen-Hsiu's Blog

