← 回到首頁
#Hoisting 2 篇文章
編譯期就擋,還是執行期才爆?Java、Python、JavaScript 的 forward reference
同樣是「先用後宣告」,Java 直接編譯失敗,Python 有時候可以有時候噴 NameError,JavaScript 則給你一個 undefined。差別不在語法,而在「名字是什麼時候被解析的」。本文以 Java 的 JLS 規則為主軸,往下對照 Python 與 JavaScript。
#Java#Python#JavaScript#Forward Reference#JLS#Hoisting#TDZ
從 Hoisting 到 Execution Context Stack:揭開 JavaScript 執行機制的面紗
為什麼 var 可以「先用後宣告」?為什麼函式可以倒著呼叫?這些 JavaScript 看似神奇的行為,背後其實都指向同一件事:Execution Context 與它的 Stack。本文從 Hoisting 表象切入,逐層深入引擎的執行機制,搭配圖解徹底釐清。
#JavaScript#Execution Context#Call Stack#Hoisting#var#let#const