第3章 第2節 閉包作用域鏈工作流程

2022-10-09 13:30:12 字數 404 閱讀 8694

作用域,就是變數起作用的區域(範圍)。

全域性作用域(在函式和 {} 之外)。

函式作用域(在函式內部)。

塊級作用域(es6新增,在 {} 中)。

當瀏覽器想要執行j**ascript**時就呼叫這個容器。

在這個容器中,有兩個元件:1.記憶體元件;2.**元件。

瀏覽器建立了乙個有兩個元件的全域性執行上下文,這兩個元件分別是記憶體元件和**元件。詳細介紹在前乙個部落格

瀏覽器將分兩階段執行這段j**ascript**:

1> 記憶體建立階段

2> **執行階段

1.建立ao物件

2.找形參和變數宣告,將變數和形參作為ao屬性名,值為undefined

3.將實參和形參統一

4.在函式體裡面找函式宣告,值賦予函式體

第3章 第2 2節 預編譯

2.1 函式宣告整體提公升 2.2 變數宣告提公升 2.3 預編譯前奏 1.imply global 暗示全域性變數 即任何變數,如果變數未經宣告就賦值,此變數就為全域性物件所有。eg a 123 eg var a b 123 2.一切宣告的全域性變數,全是window的屬性。eg var a 12...

第3章 第2 2節 預編譯

2.1 函式宣告整體提公升 2.2 變數宣告提公升 2.3 預編譯前奏 1.imply global 暗示全域性變數 即任何變數,如果變數未經宣告就賦值,此變數就為全域性物件所有。eg a 123 eg var a b 123 2.一切宣告的全域性變數,全是window的屬性。eg var a 12...

第五章 作用域閉包

當函式可以記住並訪問所在的詞法作用域,就產生了閉包 for var i 0 i 5 i i 1000 這裡就涉及到事件的輪詢機制。非同步事件和同步事件,非同步事件會在最後執行。要解決上面的問題有兩種方法,分別是使用立即執行函式和塊級作用域來解決,都為函式建立了乙個塊級作用域。這樣內部的timer函式...