JavaScript技術手冊
內容描述
JavaScript是一種網絡腳本語言,被廣泛用於Web應用開發,常用來為網頁添加各式各樣的動態功能,為用戶提供更流暢美觀的瀏覽效果。JavaScript腳本通常是通過嵌入在HTML中來實現自身功能的。
《JavaScript技術手冊》內容涵蓋ES6到ES11,不僅介紹了JavaScript的基礎語法、對象、構造函數、原型與類等基本內容,還深入介紹了異步設計、錯誤處理、meta programming等高級內容。此外,還運用標準模塊語法將DOM操作、事件處理、樣式設定、XMLHttpRequest操作等細節,逐一封裝成為可用的模塊。
《JavaScript技術手冊》對於初學者來說,只要瞭解Windows基本操作,無須有任何程序語言基礎,便可以扎扎實實地學習JavaScript。對於有一定JavaScript開發經驗、正在或準備從事JavaScript 開發的人來說,通過《JavaScript技術手冊》的高級內容,能夠掌握JavaScript的技術精髓,進而應用於實踐工作中。
目錄大綱
目 錄
第1章 JavaScript技術概述 1
1.1 認識JavaScript 1
1.1.1 JavaScript的發展 1
1.1.2 認識TC39提案 4
1.1.3 使用哪個版本 5
1.2 準備JavaScript環境 7
1.2.1 JavaScript引擎 7
1.2.2 下載、安裝Node.js 8
1.3 重點復習 10
第2章 類型、變量與運算符 11
2.1 從Hello World 開始 11
2.1.1 使用REPL 11
2.1.2 撰寫JavaScript原始碼 14
2.1.3 哈啰!世界! 15
2.2 內建類型 18
2.2.1 基本類型 18
2.2.2 復合類型 23
2.2.3 數組與類數組 25
2.3 變量與運算符 29
2.3.1 變量 29
2.3.2 嚴格模式 33
2.3.3 加減乘除運算 35
2.3.4 比較運算 38
2.3.5 邏輯運算 40
2.3.6 位運算 41
2.3.7 條件、指定、遞增/遞減 43
2.4 重點復習 45
第3章 流程語法與函數 46
3.1 使用除錯器 46
3.1.1 使用Visual Studio Code 46
3.1.2 使用調試程序 48
3.2 流程語法 50
3.2.1 if分支判斷 50
3.2.2 變量與區塊 52
3.2.3 switch比對 53
3.2.4 for循環 55
3.2.5 while循環 58
3.2.6 break、continue 59
3.3 函數入門 61
3.3.1 聲明函數 61
3.3.2 參數與自變量 64
3.3.3 一級函數的運用 67
3.3.4 函數字面量與箭號函數 72
3.3.5 Closure 75
3.3.6 產生器函數 77
3.3.7 模板字符串與標記模板 81
3.4 重點復習 84
3.5 課後練習 84
第4章 使用對象 86
4.1 特性與方法 86
4.1.1 特性與undefined 86
4.1.2 函數與this 88
4.1.3 對象字面量增強 94
4.1.4 解構、餘集、打散 97
4.2 對象協議 101
4.2.1 valueOf()與toString() 101
4.2.2 符號 103
4.2.3 運用標準符號 104
4.3 重點復習 108
4.4 課後練習 108
第5章 構造函數、原型與類 110
5.1 構造函數 110
5.1.1 封裝對象建構流程 110
5.1.2 私有性模擬 114
5.1.3 特性描述器 116
5.1.4 擴充、彌封、凍結 120
5.2 原型對象 120
5.2.1 構造函數與prototype 121
5.2.2 proto與Object.create() 125
5.2.3 原型鏈 126
5.2.4 基於原型的繼承 128
5.2.5 重新定義方法 131
5.3 類語法 133
5.3.1 定義類 134
5.3.2 定義方法 135
5.3.3 實現繼承 138
5.3.4 super與extends 140
5.4 重點復習 143
5.5 課後練習 144
第6章 異步設計 145
6.1 初識異步 145
6.1.1 使用setTimeout() 145
6.1.2 同步 148
6.1.3 異步與回調 149
6.2 Promise 151
6.2.1 Promise實例 151
6.2.2 銜接Promise 153
6.2.3 Promise與產生器 155
6.3 async、await 156
6.3.1 async函數 156
6.3.2 await與Promise 158
6.3.3 for-await-of與異步
產生器函數 160
6.3.4 Symbol.asyncIterator 162
6.4 重點復習 165
6.5 課後練習 165
第7章 錯誤處理 166
7.1 錯誤處理語法 166
7.1.1 throw與try-catch 166
7.1.2 掌握錯誤類型 169
7.1.3 自定義錯誤類型 172
7.1.4 認識堆棧追蹤 174
7.1.5 產生器與錯誤處理 177
7.2 異步錯誤處理 179
7.2.1 回調模式錯誤處理 179
7.2.2 Promise與錯誤處理 181
7.2.3 async、await與錯誤處理 182
7.2.4 異步產生器與錯誤處理 183
7.3 重點復習 184
7.4 課後練習 184
第8章 常用標準API 186
8.1 數組 186
8.1.1 數組靜態方法 186
8.1.2 改變數組 189
8.1.3 函數式風格API 192
8.2 群集 196
8.2.1 Set與WeakSet 196
8.2.2 Map與WeakMap 198
8.2.3 ArrayBuffer 201
8.3 JSON 203
8.3.1 簡介JSON 203
8.3.2 JSON.stringify()與JSON.parse() 204
8.4 正則表達式 207
8.4.1 JavaSript與正則表達式 207
8.4.2 簡介正則表達式 207
8.4.3 String與正則表達式 213
8.4.4 使用RegExp 216
8.4.5 Unicode正則表達式 220
8.5 重點復習 224
8.6 課後練習 224
第9章 meta-programming 226
9.1 探索對象 226
9.1.1 對象特性 227
9.1.2 對象類型 230
9.1.3 對象相等性 234
9.2 Reflect與Proxy 235
9.2.1 Reflect API 235
9.2.2 Proxy API 240
9.3 重點復習 246
9.4 課後練習 246
第10章 進入瀏覽器 248
10.1 瀏覽器與JavaScript 248
10.1.1 初探script標簽 248
10.1.2 文件解析與script標簽 250
10.1.3 開發人員工具 253
10.1.4 引用.js原始碼 254
10.1.5 async與defer 257
10.1.6 初探安全 258
10.1.7 同源策略與CORS 261
10.2 從名稱空間到模塊 266
10.2.1 名稱空間管理 266
10.2.2 從CommonJS到AMD 271
10.3 ECMAScript模塊 273
10.3.1 script捲標與模塊 273
10.3.2 模塊語法入門 275
10.3.3 export與export default 278
10.4 重點復習 282
10.5 課後練習 282
第11章 DOM、事件與樣式 284
11.1 文件對象模型 284
11.1.1 瀏覽器對象模型 284
11.1.2 W3C文件對象模型 287
11.1.3 訪問HTML文件 289
11.1.4 捲標屬性與DOM特性 293
11.1.5 修改DOM樹 297
11.1.6 封裝DOM操作 300
11.2 事件處理 307
11.2.1 基本事件模型 308
11.2.2 標準事件模型 310
11.2.3 標準事件傳播 312
11.2.4 封裝事件處理 315
11.3 樣式處理 317
11.3.1 存取樣式信息 317
11.3.2 存取元素寬高 320
11.3.3 存取元素位置 322
11.3.4 顯示、可見度與透明度 327
11.3.5 操作class屬性 333
11.3.6 窗口維度相關信息 335
11.3.7 封裝樣式處理 338
11.4 重點復習 344
11.5 課後練習 344
第12章 網絡通信方案 345
12.1 XMLHttpRequest 345
12.1.1 初探XMLHttpRequest實例 345
12.1.2 使用GET請求 350
12.1.3 使用POST請求 354
12.1.4 上傳文件 357
12.1.5 responseXML、response 362
12.1.6 封裝XMLHttpRequest操作 366
12.2 Fetch、Server-Sent Events、WebSocket 371
12.2.1 Fetch API 372
12.2.2 Server-Sent Events 374
12.2.3 簡介WebSocket 377
12.3 重點復習 379
12.4 課後練習 379
第13章 瀏覽器保存方案 380
13.1 Cookie 380
13.1.1 認識Cookie 380
13.1.2 document.cookie 382
13.2 Web Storage 385
13.2.1 使用Storage 386
13.2.2 storage事件 388
13.3 Indexed Database 390
13.3.1 數據庫與對象庫 390
13.3.2 在交易中存取數據 393
13.3.3 封裝數據庫操作 395
13.4 重點復習 398
13.5 課後練習 398
附錄A HTTP簡介 399