图书介绍

ES6标准入门 第3版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

ES6标准入门 第3版
  • 阮一峰著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121324758
  • 出版时间:2017
  • 标注页数:547页
  • 文件大小:153MB
  • 文件页数:565页
  • 主题词:JAVA语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

ES6标准入门 第3版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 ECMAScript 6简介1

1.1 ECMAScript和JavaScript的关系1

1.2 ES6与ECMAScript 2015的关系1

1.3 语法提案的批准流程2

1.4 ECMAScript的历史3

1.5 部署进度4

1.6 Babel转码器4

1.6.1 配置文件.babelrc5

1.6.2 命令行转码babel-cli6

1.6.3 babel-node7

1.6.4 babel-register8

1.6.5 babel-core8

1.6.6 babel-polyfill9

1.6.7 浏览器环境10

1.6.8 在线转换10

1.6.9 与其他工具的配合11

1.7 Traceur转码器11

1.7.1 直接插入网页12

1.7.2 在线转换13

1.7.3 命令行转换14

1.7.4 Node环境的用法15

第2章 let和const命令17

2.1 let命令17

2.1.1 基本用法17

2.1.2 不存在变量提升19

2.1.3 暂时性死区19

2.1.4 不允许重复声明21

2.2 块级作用域22

2.2.1 为什么需要块级作用域22

2.2.2 ES6的块级作用域23

2.2.3 块级作用域与函数声明24

2.2.4 do表达式27

2.3 const命令28

2.3.1 基本用法28

2.3.2 本质29

2.3.3 ES6声明变量的6种方法30

2.4 顶层对象的属性30

2.5 global对象31

第3章 变量的解构赋值33

3.1 数组的解构赋值33

3.1.1 基本用法33

3.1.2 默认值35

3.2 对象的解构赋值37

3.3 字符串的解构赋值41

3.4 数值和布尔值的解构赋值41

3.5 函数参数的解构赋值42

3.6 圆括号问题43

3.6.1 不能使用圆括号的情况43

3.6.2 可以使用圆括号的情况44

3.7 用途44

第4章 字符串的扩展49

4.1 字符的Unicode表示法49

4.2 codePointAt()50

4.3 String.fromCodePoint()52

4.4 字符串的遍历器接口52

4.5 at()53

4.6 normalize()53

4.7 includes()、startsWith()、endsWith()54

4.8 repeat()55

4.9 padStart()、padEnd()56

4.10 模板字符串57

4.11 实例:模板编译60

4.12 标签模板62

4.13 Stringraw()67

4.14 模板字符串的限制68

第5章 正则的扩展71

5.1 RegExp构造函数71

5.2 字符串的正则方法72

5.3 u修饰符72

5.4 y修饰符74

5.5 sticky属性77

5.6 flags属性77

5.7 s修饰符:dotAll模式78

5.8 后行断言79

5.9 Unicode属性类80

5.10 具名组匹配81

5.10.1 简介81

5.10.2 解构赋值和替换82

5.10.3 引用83

第6章 数值的扩展85

6.1 二进制和八进制表示法85

6.2 Number.isFinite()、Number.isNaN()86

6.3 Number.parseInt()、Number.parseFloat()87

6.4 Number.isInteger()88

6.5 Number.EPSILON88

6.6 安全整数和Number.isSafeInteger()89

6.7 Math对象的扩展92

6.7.1 Math.trunc()92

6.7.2 Math.sign()92

6.7.3 Math.cbrt()93

6.7.4 Math.clz32()94

6.7.5 Math.imul()95

6.7.6 Math.fround()95

6.7.7 Math.hypot()96

6.7.8 对数方法96

6.7.9 双曲函数方法98

6.8 Math.signbit()98

6.9 指数运算符99

6.10 Integer数据类型99

6.10.1 简介99

6.10.2 运算100

第7章 函数的扩展103

7.1 函数参数的默认值103

7.1.1 基本用法103

7.1.2 与解构赋值默认值结合使用105

7.1.3 参数默认值的位置107

7.1.4 函数的length属性108

7.1.5 作用域108

7.1.6 应用111

7.2 rest参数112

7.3 严格模式113

7.4 name属性115

7.5 箭头函数116

7.5.1 基本用法116

7.5.2 注意事项118

7.5.3 嵌套的箭头函数121

7.6 绑定this123

7.7 尾调用优化124

7.7.1 什么是尾调用124

7.7.2 尾调用优化125

7.7.3 尾递归126

7.7.4 递归函数的改写128

7.7.5 严格模式129

7.7.6 尾递归优化的实现129

7.8 函数参数的尾逗号132

第8章 数组的扩展133

8.1 扩展运算符133

8.1.1 含义133

8.1.2 替代数组的apply方法134

8.1.3 扩展运算符的应用136

8.2 Array.from()139

8.3 Array.of()142

8.4 数组实例的copyWithin()143

8.5 数组实例的find()和findIndex()144

8.6 数组实例的fill()145

8.7 数组实例的entries()、keys()和values()145

8.8 数组实例的includes()146

8.9 数组的空位147

第9章 对象的扩展151

9.1 属性的简洁表示法151

9.2 属性名表达式154

9.3 方法的name属性156

9.4 Object.is()157

9.5 Object.assign()158

9.5.1 基本用法158

9.5.2 注意点160

9.5.3 常见用途161

9.6 属性的可枚举性163

9.7 属性的遍历165

9.8 _proto_属性、Object.setPrototypeOf()、Object.getPrototypeOf()166

9.8.1 _proto_属性166

9.8.2 Object.setPrototypeOf()167

9.8.3 Object.getPrototypeOf()168

9.9 Object.keysO、Object.values()、Object.entries()169

9.9.1 Object.keys()169

9.9.2 Object.values()170

9.9.3 Object.entries171

9.10 对象的扩展运算符173

9.11 Object.getOwnPropertyDescriptors()177

9.12 Null传导运算符181

第10章 Symbol183

10.1 概述183

10.2 作为属性名的Symbol185

10.3 实例:消除魔术字符串188

10.4 属性名的遍历189

10.5 Symbol.for()、Symbol.keyFor()191

10.6 实例:模块的Singleton模式192

10.7 内置的Symbol值194

10.7.1 Symbol.hasInstance194

10.7.2 Symbol.isConcatSpreadable195

10.7.3 Symbol.species196

10.7.4 Symbol.match197

10.7.5 Symbol.replace197

10.7.6 Symbol.search198

10.7.7 Symbol.split198

10.7.8 Symbol.iterator199

10.7.9 Symbol.toPrimitive200

10.7.10 Symbol.toStringTag201

10.7.11 Symbol.unscopables202

第11章 Set和Map数据结构205

11.1 Set205

11.1.1 基本用法205

11.1.2 Set实例的属性和方法207

11.1.3 遍历操作208

11.2 WeakSet212

11.2.1 含义212

11.2.2 语法212

11.3 Map214

11.3.1 含义和基本用法214

11.3.2 实例的属性和操作方法218

11.3.3 遍历方法220

11.3.4 与其他数据结构的互相转换222

11.4 WeakMap225

11.4.1 含义225

11.4.2 WeakMap的语法227

11.4.3 WeakMap示例228

11.4.4 WeakMap的用途229

第12章 Proxy233

12.1 概述233

12.2 Proxy实例的方法237

12.2.1 get()237

12.2.2 set()241

12.2.3 apply()243

12.2.4 has()244

12.2.5 construct()246

12.2.6 deleteProperty()247

12.2.7 defineProperty()248

12.2.8 getOwnPropertyDescriptor()248

12.2.9 getPrototypeOf()249

12.2.10 isExtensible()249

12.2.11 ownKeys()250

12.2.12 preventExtensions()254

12.2.13 setPrototypeOf()255

12.3 Proxy.revocable()255

12.4 this问题256

12.5 实例:Web服务的客户端258

第13章 Reflect259

13.1 概述259

13.2 静态方法261

13.2.1 Reflect.get(target,name,receiver)262

13.2.2 Reflect.set(target,name,value,receiver)263

13.2.3 Reflect.has(obj,name)264

13.2.4 Reflect.deleteProperty(obj,name)265

13.2.5 Reflect.construct(target,args)265

13.2.6 Reflect.getPrototypeOf(obj)265

13.2.7 Reflect.setPrototypeOf(obj,newProto)266

13.2.8 Reflect.apply(func,thisArg,args)267

13.2.9 Reflect.defineProperty(target,propertyKey,attributes)267

13.2.10 Reflect.getOwnPropertyDescriptor(target,propertyKey)268

13.2.11 Reflect.isExtensible(target)268

13.2.12 Reflect.preventExtensions(target)269

13.2.13 Reflect.ownKeys(target)269

13.3 实例:使用Proxy实现观察者模式270

第14章 Promise对象273

14.1 Promise的含义273

14.2 基本用法274

14.3 Promise.prototype.then()278

14.4 Promise.prototype.catch()279

14.5 Promise.all()285

14.6 Promise.race()287

14.7 Promise.resolve()288

14.8 Promise.reject()290

14.9 两个有用的附加方法291

14.9.1 done()291

14.9.2 finally()292

14.10 应用292

14.10.1 加载图片292

14.10.2 Generator函数与Promise的结合293

14.11 Promise.try()294

第15章 Iterator和for...of循环297

15.1 Iterator(遍历器)的概念297

15.2 默认Iterator接口300

15.3 调用Iterator接口的场合305

15.4 字符串的Iterator接口307

15.5 Iterator接口与Generator函数308

15.6 遍历器对象的return()、throw()309

15.7 for...of循环310

15.7.1 数组310

15.7.2 Set和Map结构311

15.7.3 计算生成的数据结构312

15.7.4 类似数组的对象313

15.7.5 对象314

15.7.6 与其他遍历语法的比较315

第16章 Generator函数的语法317

16.1 简介317

16.1.1 基本概念317

16.1.2 yield表达式319

16.1.3 与Iterator接口的关系322

16.2 next方法的参数323

16.3 for...of循环325

16.4 Generator.prototype.throw()328

16.5 Generator.prototype.return()334

16.6 yield*表达式335

16.7 作为对象属性的Generator函数342

16.8 Generator函数this342

16.9 含义345

16.9.1 Generator与状态机345

16.9.2 Generator与协程346

16.10 应用347

16.10.1 异步操作的同步化表达347

16.10.2 控制流管理348

16.10.3 部署Iterator接口351

16.10.4 作为数据结构352

第17章 Generator函数的异步应用355

17.1 传统方法355

17.2 基本概念355

17.2.1 异步355

17.2.2 回调函数356

17.2.3 Promise356

17.3 Generator函数357

17.3.1 协程357

17.3.2 协程的Generator函数实现358

17.3.3 Generator函数的数据交换和错误处理359

17.3.4 异步任务的封装360

17.4 Thunk函数361

17.4.1 参数的求值策略361

17.4.2 Thunk函数的含义362

17.4.3 JavaScript语言的Thunk函数362

17.4.4 Thunkify模块364

17.4.5 Generator函数的流程管理365

17.4.6 Thunk函数的自动流程管理367

17.5 co模块368

17.5.1 基本用法368

17.5.2 co模块的原理369

17.5.3 基于Promise对象的自动执行369

17.5.4 co模块的源码371

17.5.5 处理并发的异步操作372

17.6 实例:处理Stream373

第18章 async函数375

18.1 含义375

18.2 用法377

18.3 语法379

18.3.1 返回Promise对象379

18.3.2 Promise对象的状态变化379

18.3.3 await命令380

18.3.4 错误处理382

18.3.5 使用注意点383

18.4 async函数的实现原理386

18.5 其他异步处理方法的比较387

18.6 实例:按顺序完成异步操作388

18.7 异步遍历器390

18.7.1 异步遍历的接口390

18.7.2 for await...of392

18.7.3 异步Generator函数393

18.7.4 yield*语句398

第19章 Class的基本语法399

19.1 简介399

19.2 严格模式403

19.3 constructor方法403

19.4 类的实例对象404

19.5 Class表达式406

19.6 不存在变量提升407

19.7 私有方法408

19.8 私有属性409

19.9 this的指向410

19.10 name属性412

19.11 Class的取值函数(getter)和存值函数(setter)412

19.12 Class的Generator方法413

19.13 Class的静态方法414

19.14 Class的静态属性和实例属性415

19.14.1 Class的实例属性416

19.14.2 Class的静态属性417

19.15 new.target属性418

第20章 Class的继承421

20.1 简介421

20.2 Object.getPrototypeOf()423

20.3 super关键字423

20.4 类的prototype属性和_proto_属性429

20.4.1 extends的继承目标430

20.4.2 实例的_proto_属性432

20.5 原生构造函数的继承432

20.6 Mixin模式的实现436

第21章 修饰器439

21.1 类的修饰439

21.2 方法的修饰442

21.3 为什么修饰器不能用于函数444

21.4 core-decoratorsjs446

21.5 使用修饰器实现自动发布事件449

21.6 Mixin450

21.7 Trait453

21.8 Babel转码器的支持456

第22章 Module的语法457

22.1 概述457

22.2 严格模式458

22.3 export命令459

22.4 import命令462

22.5 模块的整体加载464

22.6 export default命令465

22.7 export与import的复合写法468

22.8 模块的继承469

22.9 跨模块常量470

22.10 import()471

22.10.1 简介471

22.10.2 适用场合472

22.10.3 注意点473

第23章 Module的加载实现475

23.1 浏览器加载475

23.1.1 传统方法475

23.1.2 加载规则476

23.2 ES6模块与CommonJS模块的差异477

23.3 Node加载481

23.3.1 概述481

23.3.2 import命令加载CommonJS模块482

23.3.3 require命令加载ES6模块484

23.4 循环加载485

23.4.1 CommonJS模块的加载原理485

23.4.2 CommonJS模块的循环加载486

23.4.3 ES6模块的循环加载488

23.5 ES6模块的转码492

23.5.1 ES6 module transpiler492

23.5.2 SystemJS492

第24章 编程风格495

24.1 块级作用域495

24.1.1 let取代var495

24.1.2 全局常量和线程安全496

24.2 字符串497

24.3 解构赋值497

24.4 对象498

24.5 数组500

24.6 函数501

24.7 Map结构503

24.8 Class503

24.9 模块504

24.10 ESLint的使用506

第25章 读懂ECMAScript规格509

25.1 概述509

25.2 相等运算符510

25.3 数组的空位511

25.4 数组的map方法513

第26章 ArrayBuffe r517

26.1 ArrayBuffer对象518

26.1.1 概述518

26.1.2 ArrayBuffer.prototype.byteLength520

26.1.3 ArrayBuffer.prototype.slice()520

26.1.4 ArrayBuffer.isView()520

26.2 TypedArray视图521

26.2.1 概述521

26.2.2 构造函数522

26.2.3 数组方法524

26.2.4 字节序526

26.2.5 BYTES PER ELEMENT属性528

26.2.6 ArrayBuffer与字符串的互相转换528

26.2.7 溢出529

26.2.8 TypedArray.prototype.buffer531

26.2.9 TypedArray.prototype.byteLength、TypedArray.prototype.byteOffset531

26.2.10 TypedArray.prototype.1 ength531

26.2.11 TypedArray.prototype.set()532

26.2.12 TypedArray.prototype.subarray()532

26.2.13 TypedArray.prototype.slice()532

26.2.14 TypedArray.of()533

26.2.15 TypedArray.from()533

26.3 复合视图534

26.4 DataView视图535

26.5 二进制数组的应用537

26.5.1 AJAX537

26.5.2 Canvas538

26.5.3 WebSocket539

26.5.4 Fetch API539

26.5.5 File API539

26.6 SharedArrayBuffer541

26.7 Atomics对象543

热门推荐