只有使用var宣告的才是真正的變數

antzone發表於2017-04-10

本章節這裡只是澄清一個問題,那就是在javascript中,只有使用var宣告的變數才是真正的變數。

在很多教程中,都有下面類似的闡述,那就是:

[JavaScript] 純文字檢視 複製程式碼
不使用var宣告的變數是全域性變數

上面的闡述是錯誤的,即使看起來沒有任何錯誤,看如下程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
function func() {
  antzone = "螞蟻部落";
}
func();
console.log(antzone);

上面程式碼的表現,貌似符合"不使用var宣告的變數是全域性變數"這個理論。

但是這是不符合規範的,按照規範,只有使用var宣告的變數才是真正的變數,否則就是給全域性物件新增一個屬性。

看如下程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
console.log(a);
console.log(b);
 
b = 10;
var a = 20;

從上面的程式碼可以看出,其實兩者並不是一回事。

相關文章