1.作用域:
? ? ? 執(zhí)行js的區(qū)域,與其他由"{}"分割區(qū)域的語言不通逗嫡,js是有由function來劃分區(qū)域的,分為全局和局部祸穷。
2.作用域鏈:
? ? ? 訪問變量時(shí)會(huì)優(yōu)先當(dāng)前作用域,當(dāng)該作用域內(nèi)無目標(biāo)變量時(shí)會(huì)向該作用域之外的域內(nèi)查找變量需曾,搜索區(qū)域由當(dāng)前作用域轉(zhuǎn)向另一個(gè)作用域的過程成為作用域鏈祈远。、
3.瀏覽器解析js流程
每當(dāng)js運(yùn)行到一個(gè)新的域時(shí)车份,會(huì)產(chǎn)生以下兩種操作。
(1)預(yù)解析
? ? ? 首先在全局內(nèi)搜尋var function 等關(guān)鍵字出爹,然后為var聲明的變量賦予undefined庄吼,function不做處理严就。
(2)從第一行逐行運(yùn)行
在此過程中,表達(dá)式會(huì)為變量賦值渐行。
由于js中域室友函數(shù)分割铸董,因此運(yùn)行過程中如果遇到函數(shù)調(diào)用祟印,則會(huì)再次運(yùn)行以上兩種操作粟害,此過程中函數(shù)的參數(shù)等價(jià)于局部變量。