位置:首頁(yè) > 軟件操作教程 > 編程開發(fā) > JavaScript > 問(wèn)題詳情

JavaScript 變量作用域

提問(wèn)人:劉團(tuán)圓發(fā)布時(shí)間:2020-11-23

■知識(shí)點(diǎn)

變量作用域(scope)是指變量在程序中可以訪問(wèn)的有效范圍,也稱為變量的可見(jiàn)性。JavaScript變量可以分為全局變量和局部變量。

    全局變量:變量在整個(gè)頁(yè)面腳本中都是可見(jiàn)的,可以被自由訪問(wèn)。

    局部變量:變量?jī)H能在聲明的函數(shù)內(nèi)部可見(jiàn),函數(shù)外是不允許訪問(wèn)的。

■實(shí)例設(shè)計(jì)

下面的示例演示了全局變量和局部變量的關(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)部聲明了一個(gè)同名局部變量a,所以在預(yù)編譯期,JavaScript使用該變量覆蓋掉全局變量在函數(shù)內(nèi)部的影響。而在執(zhí)行初期,局部變量a未賦值,所以在函數(shù)內(nèi)第1行代碼讀取局部變量a的值也就是undefined。當(dāng)執(zhí)行到函數(shù)第2行代碼時(shí),則為局部變量賦值2,所以在第3行中就顯示2。

    因此,在函數(shù)體內(nèi)使用全局變量是一種危險(xiǎn)的行為。為了避免此類問(wèn)題,應(yīng)該養(yǎng)成在函數(shù)體內(nèi)使用var語(yǔ)句顯式聲明局部變量。

繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部