JS變量前不加var的影響

再次強調下變量的作用域:(給小白看的)

  js中變量作用域可分爲:"全局變量"和"局部變量"

"全局變量":聲明在函數之外的變量

"局部變量":聲明在函數體中的變量,並且只能在當前函數體內訪問


但有一種情況,我們在定義變量時可能會忘記加變量名前面的 var 關鍵字。

這樣會發生什麼呢?


我們做下實驗,代碼如下:

function test() {  
    a = 30;
    var b = 10;
}
test();
window.alert("a="+a); 
window.alert("b="+b); 
  

 

運行結果是遊覽器把函數內部的變量a彈出了a = 30,而同樣在函數內部的變量b卻沒有彈出。


結果表明:在JS中,如果在函數內部定義變量時不加var,則判定爲全局變量,加上var則爲正常的局部變量。

即,在聲明變量時凡是沒有var關鍵字,而直接賦值的變量均爲全局變量。


注意:上述變量聲明時,不加var的用法不推薦使用,我們要儘量避免。(容易造成數據污染)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章