你不知道的JavaScript中卷

你不知道的JavaScript中卷

《你不知道的JavaScript中卷》是2020年4月人民郵電出版社出版的圖書,作者是[美]辛普森(Kyle Simpson)。

基本介紹

  • 中文名:你不知道的JavaScript中卷
  • 作者:[美]辛普森(Kyle Simpson)
  • 出版社:人民郵電出版社
  • 出版時間:2020年4月
  • 頁數:358 頁
  • 定價:79 元
  • 開本:16 開
  • 裝幀:平裝
  • ISBN:9787115431165
內容簡介,圖書目錄,

內容簡介

JavaScript這門語言簡單易用,很容易上手,但其語言機制複雜微妙,即使是經驗豐富的JavaScript開發人員,如果沒有認真學習的話也無法真正理解。本套書直面當前JavaScript開發人員不求甚解的大趨勢,深入理解語言內部的機制,全面介紹了JavaScript中常被人誤解和忽視的重要知識點。本書是其中卷,主要介紹了類型、語法、異步和性能。

圖書目錄

前言 XI
第 一部分 類型和語法
序 2
第 1 章 類型 3
1.1 類型 4
1.2 內置類型 4
1.3 值和類型 6
1.3.1  和undeclared 6
1.3.2 typeof Undeclared 7
1.4 小結 10
第 2 章 值 11
2.1 數組 11
2.2 字元串 13
2.3 數字 15
2.3.1 數字的語法 16
2.3.2 較小的數值 18
2.3.3 整數的安全範圍 19
2.3.4 整數檢測 20
2.3.5 32 位有符號整數 20
2.4 特殊數值 21
2.4.1 不是值的值 21
2.4.2  21
2.4.3 特殊的數字 23
2.4.4 特殊等式 27
2.5 值和引用 28
2.6 小結 31
第3 章 原生函式 33
3.1 內部屬性[[Class]] 34
3.2 封裝對象包裝 35
3.3 拆封 36
3.4 原生函式作為構造函式 37
3.4.1 Array(..) 37
3.4.2 Object(..)、Function(..) 和RegExp(..) 40
3.4.3 Date(..) 和Error(..) 41
3.4.4 Symbol(..) 42
3.4.5 原生原型 43
3.5 小結 45
第4 章 強制類型轉換 46
4.1 值類型轉換 46
4.2 抽象值操作 47
4.2.1 ToString 48
4.2.2 ToNumber 52
4.2.3 ToBoolean 53
4.3 顯式強制類型轉換 56
4.3.1 字元串和數字之間的顯式轉換 57
4.3.2 顯式解析數字字元串 62
4.3.3 顯式轉換為布爾值 65
4.4 隱式強制類型轉換 67
4.4.1 隱式地簡化 67
4.4.2 字元串和數字之間的隱式強制類型轉換 68
4.4.3 布爾值到數字的隱式強制類型轉換 71
4.4.4 隱式強制類型轉換為布爾值 72
4.4.5 || 和&& 73
4.4.6 符號的強制類型轉換 76
4.5 寬鬆相等和嚴格相等 77
4.5.1 相等比較操作的性能 .77
4.5.2 抽象相等
4.6 抽象關係比較 89
4.7 小結 91
第5 章 語法 92
5.1 語句和表達式 92
5.1.1 語句的結果值 93
5.1.2 表達式的副作用 95
5.1.3 上下文規則 99
5.2 運算符優先權 104
5.2.1 短路 107
5.2.2 更強的綁定 107
5.2.3 關聯 108
5.2.4 釋疑 110
5.3 自動分號 111
5.4 錯誤 113
5.5 函式參數 115
5.6 try..finally 117
5.7 switch 120
5.8 小結 122
附錄A 混合環境JavaScript 123
第 二部分 異步和性能
序 136
第 1 章 異步:現在與將來 138
1.1 分塊的程式 139
1.2 事件循環 141
1.3 並行執行緒 143
1.4 並發 148
1.4.1 非互動 150
1.4.2 互動 150
1.4.3 協作 154
1.5 任務 156
1.6 語句順序 157
1.7 小結 159
第 2 章 回調 161
2.1 continuation 162
2.2 順序的大腦 163
2.2.1 執行與計畫 164
2.2.2 嵌套回調與鏈式回調 165
2.3 信任問題 169
2.3.1 五個回調的故事 170
2.3.2 不只是別人的代碼 171
2.4 省點回調 173
2.5 小結 176
第3 章 Promise 178
3.1 什麼是Promise 179
3.1.1 未來值 179
3.1.2 完成事件 183
3.2 具有then 方法的鴨子類型 188
3.3 Promise 信任問題 190
3.3.1 調用過早 190
3.3.2 調用過晚 191
3.3.3 回調未調用 192
3.3.4 調用次數過少或過多 193
3.3.5 未能傳遞參數/ 環境值 193
3.3.6 吞掉錯誤或異常 194
3.3.7 是可信任的Promise 嗎 195
3.3.8 建立信任 197
3.4 鏈式流 198
3.5 錯誤處理 206
3.5.1 絕望的陷阱 208
3.5.2 處理未捕獲的情況 209
3.5.3 成功的坑 211
3.6 Promise 模式 212
3.6.1 Promise.all([ .. ]) 212
3.6.2 Promise.race([ .. ]) 213
3.6.3 all([ .. ]) 和race([ .. ]) 的變體 216
3.6.4 並發疊代 217
3.7 Promise API 概述 219
3.7.1 new Promise(..) 構造器 219
3.7.2 Promise.resolve(..) 和Promise.reject(..) 219
3.7.3 then(..) 和catch(..) 220
3.7.4 Promise.all([ .. ]) 和Promise.race([ .. ]) 221
3.8 Promise 局限性 222
3.8.1 順序錯誤處理 222
3.8.2 單一值 223
3.8.3 單決議 225
3.8.4 慣性 227
3.8.5 無法取消的Promise 230
3.8.6 Promise 性能 231
3.9 小結 233
第4 章 生成器 234
4.1 打破完整運行 234
4.1.1 輸入和輸出 236
4.1.2 多個疊代器 239
4.2 生成器產生值 243
4.2.1 生產者與疊代器 243
4.2.2 iterable 246
4.2.3 生成器疊代器 247
4.3 異步疊代生成器 250
4.4 生成器+Promise 254
4.4.1 支持Promise 的Generator Runner 256
4.4.2 生成器中的Promise 並發 258
4.5 生成器委託 262
4.5.1 為什麼用委託 264
4.5.2 訊息委託 264
4.5.3 異步委託 268
4.5.4 遞歸委託 268
4.6 生成器並發 269
4.7 形實轉換程式 273
4.8 ES6 之前的生成器 279
4.8.1 手工變換 280
4.8.2 自動轉換 284
4.9 小結 285
第5 章 程式性能 287
5.1 Web Worker 288
5.1.1 Worker 環境 290
5.1.2 數據傳遞 291
5.1.3 共享Worker 291
5.1.4 模擬Web Worker 293
5.2 SIMD 293
5.3 asm.js 295
5.3.1 如何使用asm.js 最佳化 295
5.3.2 asm.js 模組 296
5.4 小結 298
第6 章 性能測試與調優 299
6.1 性能測試 99
6.1.1 重複 300
6.1.2 Benchmark.js 301
6.2 環境為王 303
6.3 jsPerf.com 305
6.4 寫好測試 309
6.5 微性能 309
6.5.1 不是所有的引擎都類似 312
6.5.2 大局 314
6.6 尾調用最佳化 316
6.7 小結 318
附錄A asynquence 庫 319
附錄B 高 級異步模式 339

相關詞條

熱門詞條

聯絡我們