1 作用域分類
(1)block-level scope 塊作用域:{...}為一個(gè)塊嚣崭,其里面聲明的變量不能被外部調(diào)用馆衔。
(2)function-level scope 函數(shù)作用域:一個(gè)function內(nèi)聲明的變量不能被外部調(diào)用。
(3)動(dòng)態(tài)作用域:Js沒(méi)有動(dòng)態(tài)作用域。
(4)靜態(tài)作用域(詞法作用域/閉包):Js是詞法作用域
在預(yù)處理階段就已經(jīng)形成了這個(gè)域。
2 作用域鏈
子函數(shù)的scope會(huì)指向父函數(shù)的le眯漩。
當(dāng)一個(gè)函數(shù)被調(diào)用,其就會(huì)創(chuàng)建一個(gè)詞法環(huán)境麻顶,此LE會(huì)指向它的scope 赦抖,scope會(huì)指向父親函數(shù)的LE,再去父函數(shù)中尋找辅肾。直到window或者找到
也就是函數(shù)操作變量 先在自己的詞法環(huán)境找队萤,找不到就往上找
3 調(diào)用函數(shù)內(nèi)部變量/函數(shù)
通過(guò)在內(nèi)部添加window.obj=func/varia