ES6 標準入門(第2版)

ES6 標準入門(第2版)

《ES6 標準入門(第2版)》是2015年12月電子工業出版社出版的圖書,作者是阮一峰。

基本介紹

  • 書名:ES6 標準入門(第2版)
  • 作者:阮一峰 著 
  • ISBN:978-7-121-27657-6
  • 頁數:336頁
  • 定價:69.00元
  • 出版社電子工業出版社
  • 出版時間:2015年12月出版
  • 開本:16開
內容簡介,目錄,

內容簡介

ES6(又名 ES2105)是 JavaScript 語言的新標準,2015 年 6 月正式發布後,得到了迅速推廣,是目前業界超級活躍的計算機語言。《ES6標準入門(第2版)》是國內僅有的一本 ES6 教程,在前版基礎上增補了大量內容——對標準進行了徹底的解讀,所有新增的語法知識(包括即將發布的 ES7)都給予了詳細介紹,並且緊扣業界開發實踐,給出了大量簡潔易懂、可以即學即用的示例代碼。
《ES6標準入門(第2版)》為中級難度,適合對 JavaScript 語言或 ES5 已經有所了解的讀者,用來提高水平,了解這門語言的最新發展;也可當作參考手冊,查尋 ES6/ES7 新增的語法點。

目錄

第1章 ECMAScript 6簡介 001
1.1 ECMAScript和JavaScript的關係 001
1.2 ECMAScript的歷史 001
1.3 部署進度 002
1.4 Babel轉碼器 003
命令行環境 004
瀏覽器環境 005
Node.js環境 005
線上轉換 006
1.5 Traceur轉碼器 006
直接插入網頁 006
線上轉換 007
命令行轉換 008
Node.js環境的用法 008
1.6 ECMAScript 7 009
第2章 let和const命令 010
2.1 let命令 010
基本用法 010
不存在變數提升 011
暫時性死區 011
不允許重複聲明 012
2.2 塊級作用域 013
為什麼需要塊級作用域 013
ES6的塊級作用域 013
2.3 const命令 015
2.4 跨模組常量 016
2.5 全局對象的屬性 017
第3章 變數的解構賦值 018
3.1 數組的解構賦值 018
基本用法 018
默認值 020
3.2 對象的解構賦值 021
3.3 字元串的解構賦值 024
3.4 數值和布爾值的解構賦值 024
3.5 函式參數的解構賦值 024
3.6 圓括弧問題 025
不能使用圓括弧的情況 025
可以使用圓括弧的情況 026
3.7 用途 026
第4章 字元串的擴展 029
4.1 字元的Unicode表示法 029
4.2 codePointAt() 030
4.3 String.fromCodePoint() 031
4.4 字元串的遍歷器接口 031
4.5 at() 032
4.6 normalize() 032
4.7 includes(),startsWith(),endsWith() 033
4.8 repeat() 033
4.9 padStart(),padEnd() 034
4.10 模板字元串 034
4.11 實例:模板編譯 037
4.12 標籤模板 038
4.13 String.raw() 042
第5章 正則的擴展 043
5.1 RegExp 構造函式 043
5.2 字元串的正則方法 043
5.3 u 修飾符 043
5.4 y 修飾符 045
5.5 sticky 屬性 047
5.6 flags 屬性 048
5.7 RegExp.escape() 048
第6章 數值的擴展 049
6.1 二進制和八進制數值表示法 049
6.2 Number.isFinite(), Number.isNaN() 049
6.3 Number.parseInt(), Number.parseFloat() 051
6.4 Number.isInteger() 051
6.5 Number.EPSILON 051
6.6 安全整數和Number.isSafeInteger() 052
6.7 Math 對象的擴展 054
Math.trunc() 054
Math.sign() 054
Math.cbrt() 055
Math.clz32() 055
Math.imul() 056
Math.fround() 056
Math.hypot() 057
對數方法 057
三角函式方法 058
6.8 指數運算符 058
第7章 數組的擴展 059
7.1 Array.from() 059
7.2 Array.of() 061
7.3 數組實例的copyWithin() 062
7.4 數組實例的find() 和findIndex() 063
7.5 數組實例的fill() 063
7.6 數組實例的entries()、keys() 和values() 064
7.7 數組實例的includes() 064
7.8 數組的空位 065
7.9 數組推導 067
第8章 函式的擴展 069
8.1 函式參數的默認值 069
基本用法 069
與解構賦值默認值結合使用 070
參數默認值的位置 071
函式的length 屬性 072
作用域 073
套用 074
8.2 rest 參數 074
8.3 擴展運算符 075
含義 075
替代數組的apply 方法 076
擴展運算符的套用 077
8.4 name 屬性 079
8.5 箭頭函式 080
基本用法 080
使用注意點 081
嵌套的箭頭函式 083
8.6 函式綁定 084
8.7 尾調用最佳化 085
什麼是尾調用 085
尾調用最佳化 086
尾遞歸 087
遞歸函式的改寫 088
8.8 函式參數的尾逗號 089
第9章 對象的擴展 090
9.1 屬性的簡潔表示法 090
9.2 屬性名表達式 092
9.3 方法的name 屬性 093
9.4 Object.is() 094
9.5 Object.assign() 095
9.6 屬性的可枚舉性 097
9.7 屬性的遍歷 098
9.8 __proto__ 屬性, Object.setPrototypeOf(), Object.getPrototypeOf() 099
9.9 對象的擴展運算符 101
第10 章 Symbol 103
10.1 概述 103
10.2 作為屬性名的Symbol 105
10.3 實例:消除魔術字元串 106
10.4 屬性名的遍歷 107
10.5 Symbol.for(),Symbol.keyFor() 109
10.6 內置的Symbol 值 110
Symbol.hasInstance 110
Symbol.isConcatSpreadable 110
Symbol.species 111
Symbol.match 111
Symbol.replace 112
Symbol.search 112
Symbol.split 112
Symbol.iterator 112
Symbol.toPrimitive 113
Symbol.toStringTag 113
Symbol.unscopables 114
第11 章 Proxy 和Reflect 116
11.1 Proxy 概述 116
11.2 Proxy 實例的方法 119
get() 119
set() 121
apply() 122
has() 123
construct() 123
deleteProperty() 124
defineProperty() 125
enumerate() 125
getOwnPropertyDescriptor() 126
getPrototypeOf() 126
isExtensible() 127
ownKeys() 127
preventExtensions() 128
setPrototypeOf() 128
11.3 Proxy.revocable() 129
11.4 Reflect 概述 129
11.5 Reflect 對象的方法 130
第12 章 二進制數組 133
12.1 ArrayBuffer 對象 134
概述 134
ArrayBuffer.prototype.byteLength 135
ArrayBuffer.prototype.slice() 135
ArrayBuffer.isView() 136
12.2 TypedArray 視圖 136
概述 136
構造函式 136
數組方法 138
位元組序 140
BYTES_PER_ELEMENT 屬性 141
ArrayBuffer 與字元串的互相轉換 142
溢出 142
TypedArray.prototype.buffer 143
TypedArray.prototype.byteLength, TypedArray.prototype.byteOffset 143
TypedArray.prototype.length 143
TypedArray.prototype.set() 144
TypedArray.prototype.subarray() 144
TypedArray.prototype.slice() 144
TypedArray.of() 144
TypedArray.from() 145
12.3 複合視圖 145
12.4 DataView 視圖 146
12.5 二進制數組的套用 148
AJAX 148
Canvas 148
WebSocket 149
Fetch API 149
File API 149
第13 章 Set 和Map 數據結構 151
13.1 Set 151
基本用法 151
Set 實例的屬性和方法 152
遍歷操作 153
13.2 WeakSet 155
13.3 Map 157
Map 結構的目的和基本用法 157
實例的屬性和操作方法 159
遍歷方法 160
與其他數據結構的互相轉換 162
13.4 WeakMap 164
第14 章 Iterator 和for...of 循環 166
14.1 Iterator 的概念 166
14.2 數據結構的默認Iterator 接口 168
14.3 調用Iterator 接口的場合 172
14.4 字元串的Iterator 接口 173
14.5 Iterator 接口與Generator 函式 174
14.6 遍歷器對象的return()、throw() 175
14.7 for...of 循環 175
數組 175
Set 和Map 結構 177
計算生成的數據結構 177
類似數組的對象 178
對象 179
與其他遍歷語法的比較 180
第15 章 Generator 函式 181
15.1 簡介 181
基本概念 181
yield 語句 182
與Iterator 接口的關係 184
15.2 next 方法的參數 185
15.3 for...of 循環 187
15.4 Generator.prototype.throw() 189
15.5 Generator.prototype.return() 193
15.6 yield* 語句 194
15.7 作為對象屬性的Generator 函式 199
15.8 Generator 函式的this 200
15.9 Generator 函式推導 201
15.10 含義 202
Generator 與狀態機 202
Generator 與協程 202
15.11 套用 203
第16 章 Promise 對象 208
16.1 Promise 的含義 208
16.2 基本用法 208
16.3 Promise.prototype.then() 211
16.4 Promise.prototype.catch() 212
16.5 Promise.all() 215
16.6 Promise.race() 216
16.7 Promise.resolve() 216
16.8 Promise.reject() 217
16.9 兩個有用的附加方法 218
done() 218
finally() 218
16.10 套用 219
載入圖片 219
Generator 函式與Promise 的結合 219
16.11 async 函式 220
第17 章 異步操作和async 函式 221
17.1 基本概念 221
異步 221
回調函式 221
Promise 222
17.2 Generator 函式 223
協程 223
Generator 函式的概念 223
Generator 函式的數據交換和錯誤處理 224
異步任務的封裝 224
17.3 Thunk 函式 225
參數的求值策略 225
Thunk 函式的含義 226
JavaScript 語言的Thunk 函式 226
Thunkify 模組 227
Generator 函式的流程管理 228
Thunk 函式的自動流程管理 229
17.4 co 模組 230
基本用法 230
co 模組的原理 230
基於Promise 對象的自動執行 231
co 模組的源碼 232
處理並發的異步操作 233
17.5 async 函式 234
含義 234
async 函式的實現 235
async 函式的用法 236
注意點 236
與Promise、Generator 的比較 238
第18 章 Class 240
18.1 Class 基本語法 240
概述 240
constructor 方法 243
實例對象 243
name 屬性 244
Class 表達式 245
不存在變數提升 245
嚴格模式 246
18.2 Class 的繼承 246
基本用法 246
類的prototype 屬性和__proto__ 屬性 247
extends 的繼承目標 248
Object.getPrototypeOf() 249
super 關鍵字 249
實例的__proto__ 屬性 250
18.3 原生構造函式的繼承 250
18.4 Class 的取值函式(getter)和存值函式(setter) 253
18.5 Class 的Generator 方法 254
18.6 Class 的靜態方法 254
18.7 Class 的靜態屬性 255
18.8 new.target 屬性 256
18.9 Mixin 模式的實現 258
第19 章 修飾器 259
19.1 類的修飾 259
19.2 方法的修飾 261
19.3 為什麼修飾器不能用於函式 262
19.4 core-decorators.js 263
@autobind 263
@readonly 263
@override 263
@deprecate(別名@deprecated) 264
@suppressWarnings 265
19.5 使用修飾器實現自動發布事件 265
19.6 Mixin 266
19.7 Trait 267
19.8 Babel 轉碼器的支持 269
第20 章 Module 270
20.1 嚴格模式 271
20.2 export 命令 271
20.3 import 命令 272
20.4 模組的整體載入 273
20.5 module 命令 274
20.6 export default 命令 274
20.7 模組的繼承 276
20.8 ES6 模組載入的實質 277
20.9 循環載入 278
CommonJS 模組的載入原理 279
CommonJS 模組的循環載入 279
ES6 模組的循環載入 280
20.10 ES6 模組的轉碼 282
ES6 module transpiler 282
SystemJS 282
第21 章 編程風格 284
21.1 塊級作用域 284
let 取代var 284
全局常量和執行緒安全 285
嚴格模式 285
21.2 字元串 285
21.3 解構賦值 285
21.4 對象 286
21.5 數組 288
21.6 函式 288
21.7 Map 結構 289
21.8 Class 290
21.9 模組 291
21.10 ESLint 的使用 292
第22 章 讀懂ECMAScript 規格 293
22.1 概述 293
22.2 相等運算符 293
22.3 數組的空位 295
22.4 數組的map 方法 296
第23 章 參考連結 299
23.1 官方檔案 299
23.2 綜合介紹 299
23.3 let 和const 302
23.4 解構賦值 302
23.5 字元串 303
23.6 正則 304
23.7 數值 304
23.8 數組 304
23.9 函式 305
23.10 對象 306
23.11 Proxy 和Reflect 306
23.12 Symbol 308
23.13 二進制數組 308
23.14 Set 和Map 309
23.15 Iterator 310
23.16 Generator 311
23.17 Promise 對象 312
23.18 Class 314
23.19 Decorator 314
23.20 Module 315
23.21 工具 316

相關詞條

熱門詞條

聯絡我們