Dev
前端技術、踩坑紀錄與學習筆記
148 篇2026-06-1510 分鐘閱讀
說明為什麼箭頭函式不應該被當作所有函式的通用替代品:作為匿名函式,它繼承了所有匿名函式表達式的問題。整理何時可以接受用箭頭函式,以及唯一合理的例外場景。
Deep JavaScript Foundations v3
#JavaScript #frontendMasters #deepJavaScriptFoundationsV3 #ArrowFunction #FunctionExpression 2026-06-1512 分鐘閱讀
說明為什麼應該永遠使用命名函式表達式的三個理由:可靠的自我參考、可讀的 stack trace,以及程式碼自我說明。同時整理函式宣告與函式表達式的選擇建議。
Deep JavaScript Foundations v3
#JavaScript #frontendMasters #deepJavaScriptFoundationsV3 #FunctionExpression 2026-06-149 分鐘閱讀
說明函式宣告與函式表達式的關鍵差異:兩者的識別字歸屬範疇不同。函式宣告的識別字屬於外層封閉範疇,函式表達式的識別字屬於函式自身範疇且是唯讀的。以及判斷兩者的唯一標準。
Deep JavaScript Foundations v3
#JavaScript #frontendMasters #deepJavaScriptFoundationsV3 #Scope #FunctionExpression 2026-06-1410 分鐘閱讀
介紹三層巢狀範疇的查找機制:函式宣告的識別字屬於其外層封閉範疇、參數等同於函式範疇內的正式宣告,以及來源參考查找失敗時永遠拋出 ReferenceError。
Deep JavaScript Foundations v3
#JavaScript #frontendMasters #deepJavaScriptFoundationsV3 #Scope #LexicalScope 2026-06-1313 分鐘閱讀
介紹詞彙範疇的兩個邊界案例:沒有宣告遮蔽時,賦值會沿範疇鏈往上修改外層變數;對完全未宣告的變數賦值時,非嚴格模式下會自動建立全域變數。說明為什麼後者幾乎永遠是 bug。
Deep JavaScript Foundations v3
#JavaScript #frontendMasters #deepJavaScriptFoundationsV3 #Scope #LexicalScope 2026-06-1313 分鐘閱讀
介紹 JavaScript 執行階段的識別字查找機制:變數的目標(接收賦值)與來源(提供值)兩種角色,執行期如何沿著詞彙範疇鏈向外查找,以及找不到或對非函式呼叫時會發生什麼。
Deep JavaScript Foundations v3
#JavaScript #frontendMasters #deepJavaScriptFoundationsV3 #Scope #LexicalScope 2026-06-1211 分鐘閱讀
透過「編譯器與範疇管理器的對話」模型,逐步走讀一段程式碼的編譯階段處理過程:每個正式宣告如何被分配到對應範疇、遮蔽(Shadowing)是什麼,以及為什麼所有範疇與識別字的歸屬在執行前就已完全確定。
Deep JavaScript Foundations v3
#JavaScript #frontendMasters #deepJavaScriptFoundationsV3 #Scope #LexicalScope 2026-06-129 分鐘閱讀
介紹 JavaScript 範疇的基礎概念:範疇就是「找識別字的地方」,而 JavaScript 在執行前必然存在一個解析階段來設定所有範疇。說明為什麼 JavaScript 是兩階段系統,以及函式與區塊這兩種範疇單位。
Deep JavaScript Foundations v3
#JavaScript #frontendMasters #deepJavaScriptFoundationsV3 #Scope #LexicalScope 2026-06-117 分鐘閱讀
介紹 Kyle Simpson 認為 TypeScript 最被低估的功能:不只檢查變數賦值,還能驗證運算本身的型別有效性(如阻止字串參與數學運算)。同時說明他對 TypeScript 目前「全有或全無」設定方式的批評。
Deep JavaScript Foundations v3
#JavaScript #frontendMasters #deepJavaScriptFoundationsV3 #TypeScript 2026-06-106 分鐘閱讀
介紹 TypeScript 與 Flow 的自訂型別定義與函式參數標註:如何讓型別保證跨越參數與回傳值傳遞,以及 Kyle Simpson 對聯合型別的實際考量——在型別安全與彈性之間取得平衡。
Deep JavaScript Foundations v3
#JavaScript #frontendMasters #deepJavaScriptFoundationsV3 #TypeScript MIT Licensed | Copyright © 2025-present Wen-Hsiu's Blog

