關於JavaScript變數提升

覆手為雲p發表於2018-08-31

 

請看如下程式碼:

console.log(a);
var a = 2;

輸入結果會是什麼?  請說出理由

 

 

 

 

 

 

可能會有三種答案:

1、2

2、丟擲ReferenceError異常

3、undifined

 

 

對於編譯器來說 var a = 2;  這一條語句其實是兩條 :

var a;  和  a = 2;

在編譯過程中會先執行所有的宣告,包括 var a;

當程式執行到第二行時再執行的 a = 2; 

所以輸入的結果應該是undifined;

相關文章