《JavaScript編程精解(第3版)》是2020年機械工業出版社出版的圖書,作者是[美]馬爾奇·哈弗貝克( Marijn Haverbeke)。
基本介紹
- 書名:JavaScript編程精解(第3版)
- 作者:[美]馬爾奇·哈弗貝克( Marijn Haverbeke)
- 類別:Web開發
- 原作品:Eloquent JavaScript: A Modern Introduction to Programming, Third Edition
- 譯者:盧濤 、李穎
- 出版社:機械工業出版社
- 出版時間:2020年3月30日
- 定價:99 元
- 開本:16 開
- 裝幀:平裝
- ISBN:9787111648369
內容簡介,圖書目錄,作者簡介,
內容簡介
本書深入剖析了JavaScript程式語言的內部細節,並闡述了編寫優雅高效代碼的方法。作者Marijn Haverbeke從示例代碼開始講解,逐步實現了完整的項目,與此同時作者還提供了一系列習題供讀者練習,你可以從中學習並了解如何編寫自己的程式。首先,你將學習JavaScript語言的基本結構,以及控制結構、函式和數據結構。然後在進入Web瀏覽器編程之前,你將學習錯誤處理與bug修復、模組化和異步編程。在構建諸如瀏覽器遊戲、簡單的程式語言和繪畫程式的項目時,你將學習如何:
●了解編程的基本要素,包括語法、控制和數據
●使用面向對象和函式式編程技術組織和闡明代碼
●編寫瀏覽器腳本並開發基本的Web應用程式
●高效地使用DOM與瀏覽器進行互動
●利用Node.js構建伺服器和實用程式
世界級JavaScript程式設計師力作,JavaScript之父Brendan Eich高度評價並強力推薦
JavaScript編程原理與運用規則融合,你將在遊戲式開發中學會JavaScript程式設計,是系統學習JavaScript程式設計的首選之作
JavaScript幾乎可以說是所有現代Web應用程式的核心,無論是社交應用程式,還是時下流行的瀏覽器遊戲。雖說學習和使用JavaScript的成本並不高,但是它卻是一種靈活且複雜的程式語言,你可以用它來構建功能全面且複雜的應用程式。
《JavaScript編程精解》的第3版進行了全面的更新和修訂,以反映JavaScript和Web瀏覽器的當前進展,涵蓋類表示法、箭頭函式、疊代器、異步函式、模板字元串和塊作用域等功能的全新內容。而且還增加大量的新練習來測試你的技能,讓你保持在正軌上。
圖書目錄
【第一部分】 語言
●第1章 值、類型和運算符 2
1.1 值 2
1.2 數字 3
1.2.1 算術 4
1.2.2 特殊數字 4
1.3 字元串 4
1.4 一元運算符 6
1.5 布爾值 6
1.5.1 比較 6
1.5.2 邏輯運算符 7
1.6 空值 8
1.7 自動類型轉換 8
1.8 小結 10
●第2章 程式結構 11
2.1 表達式和語句 11
2.2 綁定 12
2.3 綁定名稱 13
2.4 環境 13
2.5 函式 14
2.6 console.log函式 14
2.7 返回值 15
2.8 控制流 15
2.9 條件執行 15
2.10 while和do循環 17
2.11 縮進代碼 18
2.12 for循環 19
2.13 跳出循環 19
2.14 簡潔地更新綁定 20
2.15 使用switch調度值 20
2.16 首字母大寫 21
2.17 注釋 22
2.18 小結 22
2.19 習題 22
●第3章 函式 24
3.1 定義一個函式 24
3.2 綁定和作用域 25
3.3 作為值的函式 27
3.4 聲明表示法 27
3.5 箭頭函式 28
3.6 調用棧 28
3.7 可選參數 29
3.8 閉包 30
3.9 遞歸 31
3.10 函式的增長方式 34
3.11 函式和副作用 36
3.12 小結 36
3.13 習題 37
●第4章 數據結構:對象和數組 38
4.1 松鼠人 38
4.2 數據集 39
4.3 屬性 39
4.4 方法 40
4.5 對象 41
4.6 可變性 43
4.7 松鼠人的日誌 44
4.8 計算相關性 45
4.9 數組循環 46
4.10 最終分析 47
4.11 其他數組方法 48
4.12 字元串及其屬性 50
4.13 剩餘參數 51
4.14 Math對象 52
4.15 解構 53
4.16 JSON 54
4.17 小結 54
4.18 習題 55
●第5章 高階函式 57
5.1 抽象化 58
5.2 提取重複的內容 58
5.3 高階函式 59
5.4 語言字元集數據集 60
5.5 過濾數組 61
5.6 用map轉換 62
5.7 用reduce匯總 62
5.8 組合性 63
5.9 字元串和字元代碼 64
5.10 文本識別 66
5.11 小結 67
5.12 習題 67
●第6章 對象的秘密 69
6.1 封裝 69
6.2 方法 70
6.3 原型 71
6.4 類 72
6.5 類表示法 73
6.6 覆蓋派生屬性 74
6.7 映射 75
6.8 多態性 76
6.9 符號 76
6.10 疊代器接口 78
6.11 讀取器、設定器和靜態 79
6.12 繼承 81
6.13 instanceof運算符 82
6.14 小結 82
6.15 習題 83
●第7章 項目:機器人 85
7.1 村莊Meadowf?ield 85
7.2 任務 86
7.3 持久化數據 88
7.4 模擬 89
7.5 郵車的路線 90
7.6 尋找路線 91
7.7 習題 92
●第8章 缺陷和錯誤 94
8.1 語言 94
8.2 嚴格模式 95
8.3 類型 96
8.4 測試 96
8.5 調試 97
8.6 錯誤傳播 98
8.7 異常 99
8.8 異常後清理 100
8.9 選擇性捕獲 102
8.10 斷言 103
8.11 小結 104
8.12 習題 104
●第9章 正則表達式 106
9.1 創建正則表達式 106
9.2 匹配測試 107
9.3 字元集 107
9.4 模式的重複部分 108
9.5 對子表達式分組 109
9.6 匹配和組 109
9.7 Date類 110
9.8 單詞和字元串邊界 111
9.9 選擇模式 112
9.10 匹配機制 112
9.11 回溯 113
9.12 replace方法 114
9.13 貪心 116
9.14 動態創建RegExp對象 117
9.15 search方法 117
9.16 lastIndex屬性 118
9.17 解析INI檔案 119
9.18 國際字元 121
9.19 小結 122
9.20 習題 123
●第10章 模組 124
10.1 模組作為構件 124
10.2 包 125
10.3 簡易模組 126
10.4 將數據作為代碼執行 127
10.5 CommonJS 127
10.6 ECMAScript模組 129
10.7 構建和捆綁 130
10.8 模組設計 131
10.9 小結 132
10.10 習題 133
●第11章 異步編程 134
11.1 異步 134
11.2 烏鴉技術 135
11.3 回調 136
11.4 promise 138
11.5 失敗 139
11.6 構建網路很困難 140
11.7 promise集合 142
11.8 網路泛洪 142
11.9 訊息路由 143
11.10 異步函式 145
11.11 生成器 147
11.12 事件循環 148
11.13 異步bug 149
11.14 小結 150
11.15 習題 150
●第12章 項目:程式語言 152
12.1 解析 152
12.2 求解器 156
12.3 特殊形式 157
12.4 環境 158
12.5 函式 159
12.6 編譯 160
12.7 作弊 161
12.8 習題 161
【第二部分】 瀏覽器
●第13章 瀏覽器中的JavaScript 164
13.1 網路和網際網路 164
13.2 Web 165
13.3 HTML 166
13.4 HTML和JavaScript 168
13.5 沙盒 168
13.6 兼容性和瀏覽器大戰 169
●第14章 文檔對象模型 170
14.1 文檔結構 170
14.2 樹 171
14.3 標準 172
14.4 通過樹結構 173
14.5 尋找元素 174
14.6 更改文檔 175
14.7 創建節點 175
14.8 屬性 177
14.9 布局 177
14.10 樣式 179
14.11 層疊樣式 180
14.12 查詢選擇器 181
14.13 定位和動畫 182
14.14 小結 184
14.15 習題 184
●第15章 處理事件 186
15.1 事件處理程式 186
15.2 事件和DOM節點 187
15.3 事件對象 188
15.4 傳播 188
15.5 默認操作 189
15.6 按鍵事件 190
15.7 指針事件 191
15.7.1 滑鼠點擊 191
15.7.2 滑鼠移動 192
15.7.3 觸摸事件 193
15.8 滾動事件 194
15.9 焦點事件 195
15.10 載入事件 196
15.11 事件和事件循環 196
15.12 計時器 197
15.13 限頻 198
15.14 小結 199
15.15 習題 199
●第16章 項目:平台遊戲 201
16.1 遊戲 201
16.2 技術 202
16.3 關卡 202
16.4 讀取關卡 203
16.5 演員 204
16.6 封裝是一種負擔 207
16.7 繪圖 207
16.8 動作和碰撞 211
16.9 演員的更新 214
16.10 跟蹤按鍵 215
16.11 運行遊戲 216
16.12 習題 218
●第17章 在畫布上繪圖 219
17.1 SVG 219
17.2 畫布元素 220
17.3 線和面 221
17.4 路徑 222
17.5 曲線 223
17.6 繪製餅圖 225
17.7 文本 226
17.8 圖片 227
17.9 轉換 228
17.10 存儲和清除轉換 230
17.11 回到遊戲 231
17.12 選擇圖形界面 236
17.13 小結 236
17.14 習題 237
●第18章 HTTP和表單 239
18.1 協定 239
18.2 瀏覽器和HTTP 241
18.3 fetch 242
18.4 HTTP沙盒 243
18.5 欣賞HTTP 243
18.6 安全性和HTTPS 244
18.7 表單域 244
18.8 焦點 246
18.9 禁用域 247
18.10 表單整體 247
18.11 文本域 248
18.12 複選框和單選按鈕 249
18.13 選擇域 250
18.14 檔案域 251
18.15 在客戶端存儲數據 252
18.16 小結 254
18.17 習題 255
●第19章 項目:像素繪圖程式 257
19.1 組件 257
19.2 狀態 259
19.3 DOM的建立 260
19.4 畫布 261
19.5 應用程式 263
19.6 繪圖工具 264
19.7 保存和載入 267
19.8 撤銷歷史記錄 269
19.9 讓我們畫吧 270
19.10 為什麼這么難 271
19.11 習題 271
【第三部分】 Node
●第20章 Node.js 276
20.1 背景 276
20.2 node命令 277
20.3 模組 277
20.4 使用NPM安裝 278
20.4.1 包檔案 279
20.4.2 版本 279
20.5 檔案系統模組 280
20.6 HTTP模組 281
20.7 流 283
20.8 檔案伺服器 284
20.9 小結 288
20.10 習題 289
●第21章 項目:技能分享網站 290
21.1 設計 290
21.2 長輪詢 291
21.3 HTTP接口 292
21.4 伺服器 293
21.4.1 路由器 293
21.4.2 提供檔案服務 294
21.4.3 作為資源的討論 295
21.4.4 長輪詢支持 297
21.5 客戶端 299
21.5.1 HTML 299
21.5.2 操作 299
21.5.3 展現組件 301
21.5.4 輪詢 302
21.5.5 應用程式 303
21.6 習題 304
●第22章 JavaScript性能 305
22.1 分階段編譯 305
22.2 圖的布局 306
22.3 定義圖 307
22.4 力導向布局 308
22.5 避免工作 310
22.6 分析器 312
22.7 函式內聯 313
22.8 減少垃圾 314
22.9 垃圾收集 314
22.10 動態類型 315
22.11 小結 316
22.12 習題 317
附錄 部分習題解答提示 318
作者簡介
馬爾奇·哈弗貝克(Marijn Haverbeke)世界級JavaScript程式設計師,通曉多種程式語言,在Web開發方面積累了豐富的經驗,在JavaScript領域頗有影響力。他研究過各種軟體系統,從資料庫到編譯器再到編輯器均有涉及。此外,他創建並維護著多個流行的開源項目,如CodeMirror編輯器和Tern類型推導引擎等。