JavaScript 變量作用域
■知識點(diǎn)
變量作用域(scope)是指變量在程序中可以訪問的有效范圍,也稱為變量的可見性。JavaScript變量可以分為全局變量和局部變量。
全局變量:變量在整個頁面腳本中都是可見的,可以被自由訪問。
局部變量:變量僅能在聲明的函數(shù)內(nèi)部可見,函數(shù)外是不允許訪問的。
■實(shí)例設(shè)計
下面的示例演示了全局變量和局部變量的關(guān)系。
var a = 1; //聲明并初始化全局變量
function f () { //聲明函數(shù)
document.write (a); //顯示undefined
var a = 2; //聲明并初始化局部變量
document.write(a); //顯示2
}
f(); //調(diào)用函數(shù)
由于在函數(shù)內(nèi)部聲明了一個同名局部變量a,所以在預(yù)編譯期,JavaScript使用該變量覆蓋掉全局變量在函數(shù)內(nèi)部的影響。而在執(zhí)行初期,局部變量a未賦值,所以在函數(shù)內(nèi)第1行代碼讀取局部變量a的值也就是undefined。當(dāng)執(zhí)行到函數(shù)第2行代碼時,則為局部變量賦值2,所以在第3行中就顯示2。
因此,在函數(shù)體內(nèi)使用全局變量是一種危險的行為。為了避免此類問題,應(yīng)該養(yǎng)成在函數(shù)體內(nèi)使用var語句顯式聲明局部變量。
點(diǎn)擊加載更多評論>>