JavaScript忍者秘籍(第2版)

JavaScript忍者秘籍(第2版)

《JavaScript忍者秘籍(第2版)》是2020年3月人民郵電出版社出版的圖書,作者是[美]John Resig 萊西格、Bear Bibeault 貝比奧特、Josip Maras 馬瑞斯。

基本介紹

  • 中文名:JavaScript忍者秘籍(第2版)
  • 作者:[美]John Resig 萊西格、Bear Bibeault 貝比奧特、Josip Maras 馬瑞斯
  • ISBN:9787115473264
  • 頁數:429頁
  • 定價:99元
  • 出版社:人民郵電出版社
  • 出版時間:2020年3月
  • 裝幀:平裝
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

JavaScript語言非常重要,相關的技術圖書也很多,但zhi今市面沒有一本對JavaScript語言的 重要部分(函式、閉包和原型)進行深入、全面介紹的圖書,也沒有一本講述跨瀏覽器代碼編寫的圖書。而本書彌補了這一空缺,是由jQuery庫創始人編寫的一本深入剖析JavaScript語言的書。
本書共分4個部分,從不同層次講述了逐步成為JavaScript高手所需的知識。本書從JavaScript語言及 重要的特性談起,由淺入深地探討了函式、作用域、閉包、生成器函式、對象、數組、模組化、JavaScript與Web頁面的互動以及事件等主題,引導讀者更加深入地了解JavaScript的方方面面,充分展示了JavaScript語言的各種特性。本書結合ECMAScript 6和7的相關概念,涵蓋了流行的JavaScript框架所使用的技術。
本書適合具備一定JavaScript基礎知識的讀者閱讀,也適合從事程式設計工作並想要深入探索JavaScript語言的讀者閱讀。

圖書目錄

第 1部分 熱身
第 1章 無處不在的
JavaScript 3
1.1 “理解”JavaScript語言 4
1.1.1 JavaScript是如何發展
的 5
1.1.2 如今的轉換編譯器已經能
讓我們體驗未來的
JavaScript 6
1.2 理解瀏覽器 6
1.3 使用當前的最佳實踐 7
1.3.1 調試 8
1.3.2 測試 8
1.3.3 性能分析 9
1.4 提高跨平台開發能力 10
1.5 小結 11
第 2章 運行時的頁面構建
過程 13
2.1 生命周期概覽 14
2.2 頁面構建階段 17
2.2.1 HTML解析和DOM
構建 18
2.2.2 執行JavaScript代碼 19
2.3 事件處理 23
2.3.1 事件處理器概覽 23
2.3.2 註冊事件處理器 25
2.3.3 處理事件 26
2.4 小結 28
2.5 練習 29
第 2部分 理解函式
第3章 新手的第 一堂函式
課:定義與參數 33
3.1 函式式的不同點到底是什麼 34
3.1.1 函式是第 一類對象 35
3.1.2 回調函式 36
3.2 函式作為對象的樂趣 39
3.2.1 存儲函式 40
3.2.2 自記憶函式 41
3.3 函式定義 43
3.3.1 函式聲明和函式表達
式 44
3.3.2 箭頭函式 48
3.4 函式的實參和形參 50
3.4.1 剩餘參數 52
3.4.2 默認參數 53
3.5 小結 56
3.6 練習 57
第4章 函式進階:理解函式
調用 59
4.1 使用隱式函式參數 60
4.1.1 arguments參數 60
4.1.2 this參數:函式上下文 65
4.2 函式調用 65
4.2.1 作為函式直接被
調用 66
4.2.2 作為方法被調用 67
4.2.3 作為構造函式調用 70
4.2.4 使用apply和call方法
調用 75
4.3 解決函式上下文的
問題 81
4.3.1 使用箭頭函式繞過函式上下文 81
4.3.2 使用bind方法 85
4.4 小結 86
4.5 練習 86
第5章 精通函式:閉包和
作用域 89
5.1 理解閉包 90
5.2 使用閉包 93
5.2.1 封裝私有變數 93
5.2.2 回調函式 95
5.3 通過執行上下文來跟蹤
代碼 98
5.4 使用詞法環境跟蹤變數的作用域 101
5.4.1 代碼嵌套 101
5.4.2 代碼嵌套與詞法環境 102
5.5 理解JavaScript的變數
類型 104
5.5.1 變數可變性 104
5.5.2 定義變數的關鍵字與詞法環境 107
5.5.3 在詞法環境中註冊標
識符 111
5.6 研究閉包的工作
原理 114
5.6.1 回顧使用閉包模擬私有變數的代碼 115
5.6.2 私有變數的警告 118
5.6.3 回顧閉包和回調函式的
例子 119
5.7 小結 122
5.8 練習 122
第6章 未來的函式:生成器和
promise 125
6.1 使用生成器和promise編寫優雅的異步代碼 126
6.2 使用生成器函式 127
6.2.1 通過疊代器對象控制
生成器 129
6.2.2 使用生成器 133
6.2.3 與生成器互動 136
6.2.4 探索生成器內部
構成 139
6.3 使用promise 145
6.3.1 理解簡單回調函式所帶來的問題 146
6.3.2 深入研究promise 149
6.3.3 拒絕promise 151
6.3.4 創建第 一個真實promise
案例 153
6.3.5 鏈式調用promise 155
6.3.6 等待多個promise 156
6.3.7 promise競賽 156
6.4 把生成器和promise相
結合 157
6.5 小結 161
6.6 練習 161
第3部分 深入鑽研對象,強化代碼
第7章 面向對象與原型 167
7.1 理解原型 168
7.2 對象構造器與原型 171
7.2.1 實例屬性 173
7.2.2 JavaScript動態特性的副作用 176
7.2.3 通過構造函式實現對象類型 179
7.3 實現繼承 180
7.3.1 重寫constructor屬性的
問題 184
7.3.2 instanceof操作符 187
7.4 在ES6使用JavaScript的class 189
7.4.1 使用關鍵字class 190
7.4.2 實現繼承 193
7.5 小結 195
7.6 練習 196
第8章 控制對象的訪問 199
8.1 使用getter與setter控制屬性訪問 200
8.1.1 定義getter和setter 201
8.1.2 使用getter與setter校驗屬性值 207
8.1.3 使用getter與setter定義如何計算屬性值 208
8.2 使用代理控制訪問 210
8.2.1 使用代理記錄日誌 213
8.2.2 使用代理檢測性能 215
8.2.3 使用代理自動填充
屬性 216
8.2.4 使用代理實現負數組
索引 218
8.2.5 代理的性能消耗 220
8.3 小結 221
8.4 練習 222
第9章 處理集合 225
9.1 數組 225
9.1.1 創建數組 226
9.1.2 在數組兩端添加、刪除
元素 228
9.1.3 在數組任意位置添加、刪除元素 230
9.1.4 數組常用操作 232
9.1.5 復用內置的數組函式 243
9.2 Map 244
9.2.1 別把對象當做Map 245
9.2.2 創建map 248
9.2.3 遍歷map 250
9.3 Set 251
9.3.1 創建Set 253
9.3.2 並集 254
9.3.3 交集 255
9.3.4 差集 256
9.4 小結 256
9.5 練習 257
第 10章 正則表達式 259
10.1 為什麼需要正則
表達式 260
10.2 正則表達式進階 261
10.2.1 正則表達式說明 261
10.2.2 術語和操作符 262
10.3 編譯正則表達式 266
10.4 捕獲匹配的片段 268
10.4.1 執行簡單捕獲 268
10.4.2 使用全局表達式進行
匹配 270
10.4.3 捕獲的引用 271
10.4.4 未捕獲的分組 272
10.5 利用函式進行替換 273
10.6 使用正則表達式解決常
見的問題 275
10.6.1 匹配換行 275
10.6.2 匹配Unicode字元 276
10.6.3 匹配轉義字元 276
10.7 小結 277
10.8 練習 278
第 11章 代碼模組化 281
11.1 在JavaScript ES6之前的
版本中模組化代碼 282
11.1.1 使用對象、閉包和立即執
行函式實現模組 282
11.1.2 使用AMD和CommonJS
模組化JavaScript
套用 289
11.2 ES6模組 291
11.3 小結 297
11.4 練習 298
第4部分 洞悉瀏覽器
第 12章 DOM操作 303
12.1 向DOM中注入
HTML 304
12.1.1 將HTML字元串轉換
成DOM 305
12.1.2 將DOM元素插入到文檔
中 309
12.2 DOM的特性和
屬性 311
12.3 令人頭疼的樣式
特性 313
12.3.1 樣式在何處 314
12.3.2 樣式屬性命名 316
12.3.3 獲取計算後樣式 317
12.3.4 轉換像素值 320
12.3.5 測量元素的高度和
寬度 321
12.4 避免布局抖動 326
12.5 小結 328
12.6 練習 329
第 13章 歷久彌新的事件 331
13.1 深入事件循環 332
13.1.1 僅含宏任務的示例 335
13.1.2 同時含有宏任務和微任務
的示例 338
13.2 玩轉計時器:延遲執行和
間隔執行 342
13.2.1 在事件循環中執行計
時器 343
13.2.2 處理計算複雜度高的
任務 348
13.3 處理事件 351
13.3.1 通過DOM代理事件 352
13.3.2 自定義事件 358
13.4 小結 361
13.5 練習 362
第 14章 跨瀏覽器開發
技巧 365
14.1 跨瀏覽器注意事項 366
14.2 五大開發問題 368
14.2.1 瀏覽器的bug和
差異 369
14.2.2 瀏覽器的bug修復 369
14.2.3 外部代碼和標記 370
14.2.4 回歸 373
14.3 實現策略 374
14.3.1 安全的跨瀏覽器修復
方法 375
14.3.2 特性檢測和墊片 375
14.3.3 不可測試的瀏覽器
問題 378
14.4 減少假設 379
14.5 小結 380
14.6 練習 381
附錄A ES6附加特性 383
附錄B 測試與調試的武器 389
附錄C 習題答案 407

相關詞條

熱門詞條

聯絡我們