1 三種基礎數據結構1
1.1 棧 1
1.2 堆 3
1.3 隊列 4
2 內存空間5
2.1 基礎數據類型與變量對象. 5
2.2 引用數據類型與堆內存空間 7
2.3 內存空間管理 9
3 執(zhí)行上下文11
3.1 實例1 11
3.2 實例2 15
3.3 生命周期 18
4 變量對象20
4.1 創(chuàng)建過程 20
4.2 實例分析 23
4.3 全局上下文的變量對象 26
5 作用域與作用域鏈27
5.1 作用域 27
5.1.1 全局作用域27
5.1.2 函數作用域28
5.1.3 模擬塊級作用域 29
5.2 作用域鏈 31
6 閉包33
6.1 概念 33
6.2 閉包與垃圾回收機制 38
6.3 閉包與作用域鏈 39
6.4 在Chrome 開發(fā)者工具中觀察函數調用棧、作用域鏈與閉包 41
6.5 應用閉包 49
6.5.1 循環(huán)、setTimeout 與閉包49
6.5.2 單例模式與閉包 50
6.5.3 模塊化與閉包 53
7 this 59
8 函數與函數式編程67
8.1 函數 67
8.2 函數式編程. 75
8.2.1 函數是一等公民 77
8.2.2 純函數 80
8.2.3 高階函數 85
8.2.4 柯里化 91
8.2.5 代碼組合 101
9 面向對象106
9.1 基礎概念 106
9.1.1 對象的定義106
9.1.2 創(chuàng)建對象 107
9.1.3 構造函數與原型 108
9.1.4 更簡單的原型寫法114
9.1.5 原型鏈 114
9.1.6 實例方法、原型方法、靜態(tài)方法117
9.1.7 繼承118
9.1.8 屬性類型 122
9.1.9 讀取屬性的特性值127
9.2 jQuery 封裝詳解 127
9.3 封裝一個拖曳對象. 134
9.4 封裝一個選項卡 147
9.5 封裝無縫滾動 153
10 ES6 與模塊化159
10.1 常用語法知識 160
10.2 模板字符串 167
10.3 解析結構 168
10.4 展開運算符 171
10.5 Promise 詳解173
10.5.1 異步與同步173
10.5.2 Promise. 175
10.5.3 async/await 185
10.6 事件循環(huán)機制 189
10.7 對象與class 197
10.8 模塊化 202
10.8.1 基礎語法 204
10.8.2 實例209