目 錄
第1章 種子模塊 1
1.1 命名空間 1
1.2 對象擴展 3
1.3 數組化 4
1.4 類型的判定 6
1.5 主流框架引入的機製——domReady 14
1.6 無衝突處理 16
第2章 模塊加載係統 18
2.1 AMD規範 18
2.2 加載器所在路徑的探知 19
2.3 require方法 21
2.4 define方法 27
第3章 語言模塊 31
3.1 字符串的擴展與修復 31
3.2 數組的擴展與修復 43
3.3 數值的擴展與修復 50
3.4 函數的擴展與修復 56
3.5 日期的擴展與修復 61
第4章 瀏覽器嗅探與特徵偵測 64
4.1 判定瀏覽器 64
4.2 事件的支持偵測 67
4.3 樣式的支持偵測 69
4.4 jQuery一些常用特徵的含義 70
第5章 類工廠 72
5.1 JavaScript對類的支撐 72
5.2 各種類工廠的實現 77
5.2.1 相當精巧的庫——P.js 77
5.2.2 JS.Class 80
5.2.3 simple-inheritance 82
5.2.4 體現JavaScript靈活性的庫——def.js 84
5.3 es5屬性描述符對OO庫的衝擊 88
第6章 選擇器引擎 100
6.1 瀏覽器內置的尋找元素的方法 100
6.2 getElementsBySelector 102
6.3 選擇器引擎涉及的知識點 106
6.4 選擇器引擎涉及的通用函數 114
6.4.1 isXML 114
6.4.2 contains 115
6.4.3 節點排序與去重 117
6.4.4 切割器 121
6.4.5 屬性選擇器對於空白字符的匹配策略 123
6.4.6 子元素過濾僞類的分解與匹配 125
6.5 Sizzle引擎 127
第7章 節點模塊 137
7.1 節點的創建 138
7.2 節點的插入 149
7.3 節點的復製 155
7.4 節點的移除 158
7.5 innerHTML、innerText與outerHTML的處理 161
7.6 一些奇葩的元素節點 164
7.6.1 iframe元素 164
7.6.2 object元素 174
7.6.3 video標簽 179
第8章 數據緩存係統 185
8.1 jQuery的第1代緩存係統 185
8.2 jQuery的第2代緩存係統 190
8.3 mass Framework的第1代數據緩存係統 193
8.4 mass Framework的第2代數據緩存係統 196
8.5 mass Framework的第3代數據緩存係統 198
8.6 總結 199
第9章 樣式模塊 200
9.1 主體結構 201
9.2 樣式名的修正 205
9.3 個彆樣式的特殊處理 206
9.3.1 opacity 206
9.3.2 user-select 208
9.3.3 background-position 208
9.3.4 z-index 209
9.3.5 盒子模型 210
9.3.6 元素的尺寸 211
9.3.7 元素的顯隱 218
9.3.8 元素的坐標 222
9.4 元素的滾動條的坐標 228
第10章 屬性模塊 229
10.1 如何區分固有屬性與自定義屬性 231
10.2 如何判定瀏覽器是否區分固有屬性與自定義屬性 233
10.3 IE的屬性係統的三次演變 234
10.4 className的操作 235
10.5 Prototype.js的屬性係統 240
10.6 jQuery的屬性係統 246
10.7 mass Framework的屬性係統 249
10.8 value的操作 253
第11章 事件係統 256
11.1 onXXX綁定方式的缺陷 257
11.2 attachEvent的缺陷 258
11.3 addEventListener的缺陷 259
11.4 Dean Edward的addEvent.js源碼分析 260
11.5 jquery1.8.2的事件模塊概覽 263
11.6 jQuery.event.add的源碼解讀 266
11.7 jQuery.event.remove的源碼解讀 269
11.8 jQuery.event.dispatch的源碼解讀 271
11.9 jQuery.event.trigger的源碼解讀 276
11.10 jQuery對事件對象的修復 280
11.11 滾輪事件的修復 286
11.12 mouseenter與mouseleave事件的修復 290
11.13 focusin與focusout事件的修復 293
11.14 舊版本IE下submit的事件代理的實現 295
11.15 oninput事件的兼容性處理 296
第12章 章異步處理 298
12.1 setTimeout與setInterval 299
12.2 Mochikit Deferred 301
12.3 JSDeferred 309
12.3.1 得到一個Deferred實例 310
12.3.2 Deferred鏈的實現 312
12.3.3 JSDeferred的並歸結果 316
12.3.4 JSDeferred的性能提速 318
12.4 jQuery Deferred 321
12.5 Promise/A與mmDeferred 327
12.6 JavaScript異步處理的前景 334
第13章 數據交互模塊 339
13.1 Ajax概覽 339
13.2 優雅地取得XMLHttpRequest對象 339
13.3 XMLHttpRequest對象的事件綁定與狀態維護 342
13.4 發送請求與數據 344
13.5 接收數據 346
13.6 上傳文件 349
13.7 一個完整的Ajax實現 351
第14章 動畫引擎 363
14.1 動畫的原理 363
14.2 緩動公式 365
14.3 API的設計 368
14.4 mass Framework基於JavaScript的動畫引擎 369
14.5 requestAnimationFrame 377
14.6 CSS3 transition 383
14.7 CSS3 animation 388
14.8 mass Framework基於CSS的動畫引擎 390
第15章 插件化 398
15.1 jQuery的插件的一般寫法 398
15.2 jQuery UI對內部類的操作 401
15.3 jQuery easy UI的智能加載與個彆化製定 403
15.4 更直接地操作UI實例 406
第16章 MVVM 409
16.1 當前主流MVVM框架介紹 410
16.2 屬性變化的監聽 416
16.3 ViewModel 418
16.4 綁定 429
16.5 監控數組與子模闆 437
· · · · · · (
收起)