JavaScript 高級程序設計, 4/e (Professional JavaScript for Web Developers, 4/e)
內容描述
本書是JavaScript經典圖書的新版。
第4版涵蓋ECMAScript 2019,全面、
深入地介紹了JavaScript開發者必須掌握的前端開發技術,
涉及JavaScript的基礎特性和高級特性。
書中詳盡討論了JavaScript的各個方面,從JavaScript的起源開始,
逐步講解到新出現的技術,其中重點介紹ECMAScript和DOM標準。
在此基礎上,接下來的各章揭示了JavaScript的基本概念,包括類、期約、迭代器、代理,等等。
另外,書中深入探討了客戶端檢測、事件、動畫、表單、錯誤處理及JSON。
本書同時也介紹了近幾年來湧現的重要新規範,
包括Fetch API、模塊、工作者線程、服務線程以及大量新API。
目錄大綱
目錄
第1章什麼是JavaScript 1
1.1簡短的歷史回顧1
1.2 JavaScript實現2
1.3 JavaScript版本9
1.4小結10
第2章HTML中的JavaScript 11
2.1 script元素11
2.2行內代碼與外部文件18
2.3文檔模式18
2.4 noscript元素19
2.5小結20
第3章語言基礎21
3.1語法21
3.2關鍵字與保留字23
3.3變量24
3.4數據類型30
3.5操作符56
3.6語句73
3.7函數80
3.8小結82
第4章變量、作用域與內存83
4.1原始值與引用值83
4.2執行上下文與作用域87
4.3垃圾回收94
4.4小結101
第5章基本引用類型103
5.1 Date 103
5.2 RegExp 107
5.3原始值包裝類型113
5.4單例內置對象128
5.5小結135
第6章集合引用類型136
6.1 Object 136
6.2 Array 138
6.3定型數組155
6.4 Map 163
6.5 WeakMap 168
6.6 Set 173
6.7 WeakSet 178
6.8迭代與擴展操作180
6.9小結182
第7章迭代器與生成器183
7.1理解迭代183
7.2迭代器模式184
7.3生成器192
7.4小結204
第8章對象、類與面向對象編程205
8.1理解對象205
8.2創建對象220
8.3繼承238
8.4類249
8.5小結265
第9章代理與反射266
9.1代理基礎266
9.2代理捕獲器與反射方法274
9.3代理模式283
9.4小結286
第10章函數287
10.1箭頭函數288
10.2函數名289
10.3理解參數290
10.4沒有重載292
10.5默認參數值293
10.6參數擴展與收集295
10.7函數聲明與函數表達式297
10.8函數作為值297
10.9函數內部299
10.10函數屬性與方法302
10.11函數表達式304
10.12遞歸306
10.13尾調用優化307
10.14閉包309
10.15立即調用的函數表達式314
10.16私有變量316
10.17小結321
第11章期約與異步函數322
11.1異步編程322
11.2期約325
11.3異步函數347
11.4小結360
第12章BOM 361
12.1 window對象361
12.2 location對象372
12.3 navigator對象375
12.4 screen對象379
12.5 history對象379
12.6小結381
第13章客戶端檢測382
13.1能力檢測382
13.2用戶代理檢測386
13.3軟件與硬件檢測394
13.4小結400
第14章DOM 401
14.1節點層級401
14.2 DOM編程426
14.3 MutationObserver接口432
14.4小結444
第15章DOM擴展445
15.1 Selectors API 445
15.2元素遍歷447
15.3 HTML5 448
15.4專有擴展456
15.5小結459
第16章DOM2和DOM3 460
16.1 DOM的演進460
16.2樣式467
16.3遍歷476
16.4範圍481
16.5小結489
第17章事件490
17.1事件流490
17.2事件處理程序493
17.3事件對象499
17.4事件類型505
17.5內存與性能540
17.6模擬事件543
17.7小結548
第18章動畫與Canvas圖形549
18.1使用requestAnimationFrame 549
18.2基本的畫布功能552
18.3 2D繪圖上下文553
18.4 WebGL 569
18.5小結579
第19章表單腳本581
19.1表單基礎581
19.2文本框編程587
19.3選擇框編程597
19.4表單序列化601
19.5富文本編輯603
19.6小結608
第20章JavaScript API 609
20.1 Atomics與SharedArrayBuffer 609
20.2跨上下文消息616
20.3 Encoding API 617
20.4 File API與Blob API 622
20.5媒體元素627
20.6原生拖放631
20.7 Notifications API 635
20.8 Page Visibility API 636
20.9 Streams API 637
20.10計時API 644
20.11 Web組件648
20.12 Web Cryptography API 663
20.13小結674
第21章錯誤處理與調試675
21.1瀏覽器錯誤報告675
21.2錯誤處理676
21.3調試技術688
21.4舊版IE的常見錯誤691
21.5小結693
第22章處理XML 694
22.1瀏覽器對XML DOM的支持694
22.2瀏覽器對XPath的支持696
22.3瀏覽器對XSLT的支持700
22.4小結702
第23章JSON 703
23.1語法703
23.2解析與序列化706
23.4小結710
第24章網絡請求與遠程資源711
24.1 XMLHttpRequest對象711
24.2進度事件718
24.3跨源資源共享719
24.4替代性跨源技術721
24.5 Fetch API 722
24.6 Beacon API 747
24.7 Web Socket 747
24.8安全749
24.9小結750
第25章客戶端存儲751
25.1 cookie 751
25.2 Web Storage 759
25.3 IndexedDB 762
25.4小結771
第26章模塊772
26.1理解模塊模式772
26.2湊合的模塊系統776
26.3使用ES6之前的模塊加載器779
26.4使用ES6模塊783
26.5小結790
第27章工作者線程791
27.1工作者線程簡介791
27.2專用工作者線程793
27.3共享工作者線程813
27.4服務工作者線程817
27.5小結841
第28章最佳實踐842
28.1可維護性842
28.2性能851
28.3部署861
28.4小結864
附錄A ES2018和ES2019(圖靈社區下載)
附錄B嚴格模式(圖靈社區下載)
附錄C JavaScript庫和框架(圖靈社區下載)
附錄D JavaScript工具(圖靈社區下載)
作者介紹
Matt Frisbie
知名前端技術專家,擁有十餘年Web開發經驗。
曾是Google工程師,參與開發Adsense和AMP平台等重要產品。
他也是美國外賣巨頭DoorDash技術團隊的工程師。
目前擔任Gosellout公司的CTO。
畢業於伊利諾伊大學厄巴納-尚佩恩分校(UIUC)計算機科學專業。
【譯者簡介】
李松峰
360前端開發資深專家、前端TC委員、W3C AC代表,任職於“奇舞團”,
也是360 Web字體服務“奇字庫”作者。