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

JavaScript 變量作用域

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

■知識點(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語句顯式聲明局部變量。

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

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