JavaScript中的變量分為兩種作用域范圍:全局變量和局部變量。全局變量具有全局作用域,可以在程序的任何地方被訪問。而局部變量則只在特定的代碼塊中有效,外部無法訪問。下面將詳細介紹這兩種變量作用域范圍。
全局變量:
var name = "Tom"; //定義全局變量name function showName(){ console.log(name); //可在函數(shù)內(nèi)部訪問全局變量name } showName(); //輸出Tom console.log(name); //輸出Tom
上述代碼中,我們定義了一個全局變量name,并在函數(shù)內(nèi)部和外部分別輸出了這個變量。由于全局變量可以在程序的任何地方被訪問,因此我們可以在函數(shù)內(nèi)部直接調(diào)用這個變量,并在函數(shù)外部也能夠直接調(diào)用。這樣的好處在于我們可以在整個程序中都使用這個變量,方便代碼維護。
局部變量:
function showAge(){ var age = 20; //定義局部變量age console.log(age); //可在函數(shù)內(nèi)部訪問局部變量age } showAge(); //輸出20 console.log(age); //報錯,無法訪問局部變量age
上述代碼中,我們定義了一個局部變量age,并在函數(shù)內(nèi)部輸出了這個變量。由于局部變量只在特定的代碼塊中有效,因此我們不能在函數(shù)外部直接調(diào)用這個變量。這樣的好處在于我們可以將變量的作用范圍限制在特定的代碼塊中,不會對其他代碼產(chǎn)生影響。
需要注意的是,全局變量和局部變量同名時,局部變量的作用范圍會覆蓋全局變量的作用范圍。例如:
var age = 30; //定義全局變量age function showAge(){ var age = 20; //定義局部變量age console.log(age); //輸出20,訪問的是局部變量age } showAge(); //輸出20 console.log(age); //輸出30,訪問的是全局變量age
在上述代碼中,我們定義了全局變量age和局部變量age,并分別輸出了它們的值。由于局部變量的作用范圍覆蓋了全局變量的作用范圍,因此在函數(shù)內(nèi)部訪問的是局部變量age,在函數(shù)外部訪問的是全局變量age。
總之,在JavaScript中,全局變量和局部變量的作用范圍是有所區(qū)別的。全局變量具有全局作用域,可以在程序的任何地方被訪問。而局部變量則只在特定的代碼塊中有效,外部無法訪問。我們可以根據(jù)程序的需求,靈活使用這兩種變量,提高代碼的效率。