JavaScript 框架設計, 2/e JavaScript框架设计(第2版)

司徒正美

  • 出版商: 人民郵電
  • 出版日期: 2017-09-01
  • 定價: $570
  • 售價: 8.5$485
  • 語言: 簡體中文
  • 頁數: 457
  • 裝訂: 平裝
  • ISBN: 7115464294
  • ISBN-13: 9787115464293
  • 相關分類: JavaScript
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

內 容 提 要
本書全面講解了JavaScript框架設計及相關的知識,主要內容包括種子模塊、語言模塊、瀏覽器嗅探與特徵偵測、類工廠、選擇器引擎、節點模塊、數據緩存模塊、樣式模塊、屬性模塊、PC端和移動端的事件系統、jQuery的事件系統、異步模型、數據交互模塊、動畫引擎、MVVM、前端模板(靜態模板)、MVVM的動態模板、性能牆與復雜牆、組件、jQuery時代的組件方案、avalon2的組件方案、react的組件方案等。
本書適合前端設計人員、JavaScript開發者、移動UI設計者、程序員和項目經理閱讀,也可作為相關專業學慣用書和培訓學校教材。

作者簡介

鐘欽成網名司徒正美,JavaScript專家,立志做考古學家的日語系工程師,穿梭於二次元與二進制間的“魔法師”,做過陶藝,寫過小說,涉獵Java、Ruby、 JavaScript,3年成此書!

目錄大綱

第1章種子模塊1 
1.1模塊化1 
1.2功能介紹2 
1.3對象擴展3 
1.4數組化5 
1.5類型的判定8 
1.5.1 type12 
1.5.2 isPlainObject13 
1.5.3 isWindow14 
1.5.4 isNumeric15 
1.5.5 isArrayLike16 
1.6 domReady17 
1.7無衝突處理20 
1.8總結20 

第2章語言模塊21 
2.1字符串的擴展與修復22 
2.1.1 repeat24 
2.1.2 byteLen26 
2.1.3 pad30 
2.1.4 quote32 
2.1.5 trim與空白33 
2.2數組的擴展與修復37 
2.3數值的擴展與修復45 
2.4函數的擴展與修復48 
2.5日期的擴展與修復53 

第3章瀏覽器嗅探與特徵偵測57 
3.1瀏覽器判定58 
3.2 document.all趣聞61 
3.3事件的支持偵測62 
3.4樣式的支持偵測65 
3.5 jQuery一些常用特徵的含義65

第4章類工廠68 
4.1 JavaScript對類的支撐68 
4.2各種類工廠的實現73 
4.2.1相當精巧的庫—P.js74 
4.2.2 JS.Class76 
4.2.3 simple—inheritance78 
4.2.4體現JavaScript靈活性的庫—def.js81 
4.3進擊的屬性描述符85 
4.4真類降臨93
 
第5章選擇器引擎102 
5.1瀏覽器內置的尋找元素的方法103 
5.2 getElementsBySelector105 
5.3選擇器引擎涉及的知識點108 
5.3.1關係選擇器109 
5.3.2偽類111 
5.3.3其他概念113 
5.4選擇器引擎涉及的通用函數114 
5.4.1 isXML114 
5.4.2 contains115 
5.4.3節點排序與去重117 
5.4.4切割器121 
5.4. 5屬性選擇器對於空白字符的匹配策略123 
5.4.6子元素過濾偽類的分解與匹配125 
5.5 Sizzle引擎127 
5.6總結135 

第6章節點模塊136 
6.1節點的創建136 
6.2節點的插入142 
6.3節點的複製144
6.4節點的移除148 
6.5節點的移除回調實現151 
6.5.1 MutationObserver152 
6.5.2更多候選方案153 
6.6 innerHTML、innerText、outerHTML、outerText的兼容處理157 
6.7模板容器元素161 
6.8 iframe元素162 
6.9總結165 

第7章數據緩存模塊166 
7.1 jQuery的第1代緩存系統166 
7.2 jQuery的第2代緩存系統172 
7.3 jQuery的第3代緩存系統175 
7.4有容量限制的緩存系統176 
7.5本地存儲系統178 
7.6總結184 

第8章樣式模塊185 
8.1主體架構186 
8.2樣式名的修正189 
8.3個別樣式的特殊處理190 
8.3.1 opacity190 
8.3.2 user—select192 
8.3.3 background—position192 
8.3.4 z—index193 
8.3.5盒子模型194 
8.3.6元素的尺寸195 
8.3.7元素的顯隱201 
8.3.8元素的坐標203 
8.4元素的滾動條的坐標209 
8.5總結210

第9章屬性模塊211 
9.1元素節點的屬性212 
9.2如何區分固有屬性與自定義屬性214 
9.3如何判定瀏覽器是否區分固有屬性與自定義屬性216 
9.4 IE的屬性系統的3次演變217 
9.5 className的操作218 
9.6 Prototype.js的屬性系統221 
9.7 jQuery的屬性系統226 
9.8 avalon的屬性系統229 
9.9 value的操作232 
9.10總結235 

第10章PC端的事件系統236 
10.1原生API簡介238 
10.2 on×××綁定方式的缺陷239 
10.3 attachEvent的缺陷239 
10.4 addEventListener的缺陷241 
10.5 handleEvent與EventListenerOptions242 
10.6 DeanEdward大神的addEvent.js源碼分析243 
10.7 jQuery的事件系統246 
10.8 avalon2的事件系統248 
10.9總結254 

第11章移動端的事件系統255 
11.1 touch系事件256 
11.2 gesture系事件258 
11.3 tap系事件259 
11.4 press系事件268
11.5 swipe系事件271 
11.6 pinch系事件273 
11.7拖放系事件276 
11.8 rotate系事件279 
11.9總結282 

第12章異步模型283 
12.1 setTimeout與setInterval284 
12.2 Promise誕生前的世界287 
12.2.1回調函數callbacks287 
12.2.2觀察者模式observers287 
12.2.3事件機制listeners289 
12.3 JSDeferred里程碑289 
12.4 jQueryDeferred宣教者299 
12.5 es6Promise第一個標準模型303 
12.5.1構造函數:Promise(executor)308 
12.5.2Promise.resolve/reject309 
12.5.3Promise.all /race309 
12.5.4Promise#then/catch310 
12.5.5Promise#resolve/reject310 
12.5.6Promsie#notify311 
12.5.7nextTick312 
12.6 es6生成器過渡者314 
12.6.1關鍵字yield315 
12.6.2yield*和yield的區別316 
12.6.3異常處理317
12.7 es7async/await終極方案319 
12.8總結321 

第13章數據交互模塊323 
13.1 Ajax概覽323 
13.2優雅地取得XMLHttpRequest對象324 
13.3 XMLHttpRequest對象的事件綁定與狀態維護326 
13.4發送請求與數據328 
13.5接收數據330 
13.6上傳文件333 
13.7 jQuery.ajax335 
13.8 fetch,下一代Ajax340 

第14章動畫引擎344 
14.1動畫的原理344 
14.2緩動公式347 
14.3 jQuery.animate349 
14.4 massFramework基於JavaScript的動畫引擎350 
14.5 requestAnimationFrame358 
14.6 CSS3transition364 
14.7 CSS3animation368 
14.8 massFramework基於CSS的動畫引擎370 

第15章MVVM378 
15.1前端模板(靜態模板)378 
15.2 MVVM的動態模板388 
15.2.1求值函數390 
15.2.2刷新函數395 
15.3 ViewModel399
15.3.1 Proxy400 
15.3.2 Reflect401 
15.3.3 avalon的ViewModel設計403 
15.3.4 angular的ViewModel設計407 
15.4 React與虛擬DOM412 
15.4.1 React的diff算法415 
15.4.2 React的多端渲染417 
15.5性能牆與復雜牆417 

第16章組件422 
16.1 jQuery時代的組件方案422 
16.2 avalon2的組件方案427 
16.2.1組件容器429 
16.2.2配置對象430 
16.2.3 slot機制430 
16.2.4 soleSlot機制431 
16.2.5生命週期432 
16.3 React的組件方案433 
16.3.1 React組件的各種定義方式433 
16.3.2 React組件的生命週期439 
16.3.3 React組件間通信441 
16.3.4 React組件的分類445 
16.4前端路由446 
16.4.1 storage447 
16.4.2 mmHistory448 
16.4.3 mmRouter454彩蛋458