再次強調下變量的作用域:(給小白看的)
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的用法不推薦使用,我們要儘量避免。(容易造成數據污染)