JavaScript變量的作用域

JavaScript語言與其他語言有很多特殊性。
1、基本的變量作用域

var scope='global';
function checkScope(){
     var scope ='local';
     console.log(scope);
//變量作用域是函數(shù)體內(nèi)
}
checkScope();
console.log(scope);
//變量作用域是全局變量

例子中,聲明了全局變量scope和函數(shù)體內(nèi)的局部變量scope。在函數(shù)體內(nèi)部,局部變量優(yōu)先級比全局變量要高,如果一個局部變量的名字與全局變量相同,那么在聲明局部變量的函數(shù)體范圍內(nèi),局部變量將覆蓋同名的全局變量。
2、

scope = 'global';
function checkScope(){
     scope='local';
     console.long(scope);
//local
     myScope ='local';
     console.log(myScope);
//local
}
checkScope();
console.log(scope);
//local
console.log(myScope);
//local

上個例子中在函數(shù)體外,scope的值變成了local,在函數(shù)體外也可以訪問myScope的變量了。這是因為全局作用域變量可以省略var關(guān)鍵字,但是如果在函數(shù)體內(nèi)聲明變量時不使用var關(guān)鍵字,就會發(fā)生上面的現(xiàn)象。首先函數(shù)體內(nèi)的第一行語句,把全局變量中的scope變量的值改變了。而在聲明myScope變量時,由于沒有var關(guān)鍵字,JavaScript就好在全局范圍內(nèi)聲明這個變量。因此在局部變量聲明時使用var關(guān)鍵字是一個很好的習(xí)慣。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容