js 函數(shù)作用域鏈

作用域鏈:JavaScript需要查詢一個變量x時,首先會查找作用域鏈的第一個對象,如果以第一個對象沒有定義x變量,JavaScript會繼續(xù)查找有沒有定義x變量,如果第二個對象沒有定義則會繼續(xù)查找,以此類推。

函數(shù)體內(nèi)部,局部變量的優(yōu)先級比同名的全局變量高。

JavaScript沒有塊級作用域。

函數(shù)中聲明的變量在整個函數(shù)中都有定義。下面這個例子

var x = 1;
function rain(){
  alert(x);// undefined
  var x = "rain_man";
  alert(x);//  rain_man
}
// 原因是在rain函數(shù)體內(nèi)重新定義了局部變量x,
// 因此在rain函數(shù)體內(nèi)隱藏了同名的全局變量,
// 故,第一個是 undefined

未使用var關(guān)鍵字定義的變量都是全局變量。

全局變量都是window對象的屬性

最后編輯于
?著作權(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)容

  • 1.函數(shù)聲明和函數(shù)表達式 函數(shù)聲明和函數(shù)表達式都可以聲明函數(shù),但使用函數(shù)聲明的方法,聲明不必放在調(diào)用前;使用函數(shù)表...
    l_meng閱讀 342評論 0 0
  • 前言 對于js中的閉包,無論是老司機還是小白,我想,見得不能再多了,然而有時三言兩語卻很難說得明白,反正在我初學(xué)時...
    itclanCoder閱讀 4,295評論 1 11
  • 一、作用域 一個變量的作用域(scope)是程序源代碼中定義的這個變量的區(qū)域。 1. 在JS中使用的是詞法作用域(...
    掙脫吧小白閱讀 493評論 0 0
  • 目錄 1.靜態(tài)作用域與動態(tài)作用域 2.變量的作用域 3.JavaScript 中變量的作用域 4.JavaScri...
    一縷殤流化隱半邊冰霜閱讀 7,258評論 37 113
  • 不將就,是很多人選擇愛情的標尺。不愿意將自己的心委屈,不愿意欺騙自己……有那么多的不愿意,最后就變成一句:不喜歡。...
    空城季閱讀 322評論 0 0

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