当前位置:主页 > 计算机电子书 > javascript > JavaScript下载
深入理解JavaScript特性

深入理解JavaScript特性 PDF 超清版

  • 更新:2022-03-01
  • 大小:6.7 MB
  • 类别:JavaScript
  • 作者:尼古拉斯·贝瓦夸
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

内容简介

本书旨在让读者轻松学习JavaScript的新进展,包括ES6及后续更新。书中提供了大量实用示例,以循序渐进的方式讲解了异步函数、对象解构、动态导入及异步生成器等内容。本书不仅介绍了箭头函数、解构、模板字面量以及其他语法方面的新元素,还全面展示了ES6引入的流程控制机制,以及如何高效地简化自己的代码。本书的讨论还涉及ES6内置的新集合类型、使用代理控制属性访问、ES6中内置API的改进、CommonJS与ECMAScript模块的互用性等方面。

目录

  • 序 xi
  • 前言 xiii
  • 第1章 ECMAScript和JavaScript的未来  1
  • 1.1 JavaScript标准简史  1
  • 1.2 持续迭代的ECMAScript  3
  • 1.3 浏览器支持和辅助工具  5
  • 1.3.1 Babel转译器简介  5
  • 1.3.2 使用ESLint提高代码质量和一致性  9
  • 1.4 ES6特性  11
  • 1.5 JavaScript的未来  12
  • 第2章 ES6基础  14
  • 2.1 对象字面量  14
  • 2.1.1 属性值简写  14
  • 2.1.2 可计算属性名  15
  • 2.1.3 方法定义  17
  • 2.2 箭头函数  18
  • 2.2.1 词法作用域  19
  • 2.2.2 箭头函数的写法  20
  • 2.2.3 优点和用例  21
  • 2.3 解构  22
  • 2.3.1 对象的解构  22
  • 2.3.2 数组的解构  25
  • 2.3.3 函数参数的默认值  25
  • 2.3.4 函数参数的解构  26
  • 2.3.5 解构的用例  28
  • 2.4 剩余参数和扩展运算符  29
  • 2.4.1 剩余参数  29
  • 2.4.2 扩展运算符  30
  • 2.5 模板字面量  32
  • 2.5.1 字符串插值  32
  • 2.5.2 多行模板字面量  33
  • 2.5.3 标签模板  35
  • 2.6 let和const声明  37
  • 2.6.1 块级作用域和let声明  38
  • 2.6.2 暂时性死区  39
  • 2.6.3 const声明  41
  • 2.6.4 const和let的优势  42
  • 第3章 类、符号、对象和装饰器  44
  • 3.1 类  44
  • 3.1.1 使用类  44
  • 3.1.2 类的属性和方法  47
  • 3.1.3 类的继承  49
  • 3.2 符号  51
  • 3.2.1 本地符号  51
  • 3.2.2 符号的实际用法  53
  • 3.2.3 全局符号注册表  55
  • 3.2.4 众所周知的符号  57
  • 3.3 对象的内置改进  58
  • 3.3.1 使用Object.assign扩展对象  58
  • 3.3.2 使用Object.is进行对象比较  61
  • 3.3.3 Object.setPrototypeOf  62
  • 3.4 装饰器  63
  • 3.4.1 初识JavaScript装饰器  63
  • 3.4.2 装饰器叠加及不变性提醒  64
  • 3.4.3 用例:C#中的特性  64
  • 3.4.4 在JavaScript中装饰属性  66
  • 第4章 迭代与流程控制  68
  • 4.1 Promise  68
  • 4.1.1 快速理解Promise  68
  • 4.1.2 Promise的延续与连缀   72
  • 4.1.3 创建Promise   76
  • 4.1.4 Promise的状态   78
  • 4.1.5 Promise#finally提案   79
  • 4.1.6 Promise.all和Promise.race  81
  • 4.2 迭代器协议与可迭代协议  83
  • 4.2.1 迭代的原理  83
  • 4.2.2 无穷序列  85
  • 4.2.3 迭代对象以生成键/值对  88
  • 4.2.4 打造多功能播放列表  90
  • 4.3 生成器函数与生成器对象  93
  • 4.3.1 生成器基础  93
  • 4.3.2 手工迭代生成器  96
  • 4.3.3 将生成器混入可迭代对象  97
  • 4.3.4 使用生成器遍历树  99
  • 4.3.5 传递生成器函数  101
  • 4.3.6 处理异步流  102
  • 4.3.7 在生成器上抛出错误  103
  • 4.3.8 代替生成器返回  104
  • 4.3.9 基于生成器的异步I/O  105
  • 4.4 异步函数  109
  • 4.4.1 各种异步代码  109
  • 4.4.2 使用async/await  111
  • 4.4.3 并发异步流  112
  • 4.4.4 错误处理  113
  • 4.4.5 深入理解异步函数114
  • 4.5 异步迭代  119
  • 4.5.1 异步迭代器  119
  • 4.5.2 异步生成器  120
  • 第5章 巧妙使用ES中的集合  122
  • 5.1 使用ES6 map  124
  • 5.1.1 初识ES6 map  124
  • 5.1.2 散列映射和DOM元素  128
  • 5.2 理解和使用WeakMap  130
  • 5.3 ES6中的Set  131
  • 5.4 ES6 WeakSet  133
  • 第6章 使用代理控制属性访问  136
  • 6.1 了解代理  136
  • 6.1.1 捕获get访问  137
  • 6.1.2 捕获set访问  138
  • 6.1.3 通过代理实现模式验证  140
  • 6.2 可撤销代理  142
  • 6.3 代理捕获器  143
  • 6.3.1 has捕获器  143
  • 6.3.2 deleteProperty捕获器  144
  • 6.3.3 defineProperty捕获器  146
  • 6.3.4 ownKeys捕获器  148
  • 6.4 高级代理捕获器  150
  • 6.4.1 getOwnPropertyDescriptor捕获器  150
  • 6.4.2 apply捕获器  151
  • 6.4.3 construct捕获器  154
  • 6.4.4 getPrototypeOf捕获器  156
  • 6.4.5 setPrototypeOf捕获器  157
  • 6.4.6 preventExtensions捕获器  158
  • 6.4.7 isExtensible捕获器  159
  • 第7章 ES6中内置API的改进  161
  • 7.1 数字  161
  • 7.1.1 二进制和八进制字面量  161
  • 7.1.2 Number.isNaN  162
  • 7.1.3 Number.isFinite  164
  • 7.1.4 Number.parseInt  165
  • 7.1.5 Number.parseFloat  166
  • 7.1.6 Number.isInteger  166
  • 7.1.7 Number.EPSILON  167
  • 7.1.8 Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER  167
  • 7.1.9 Number.isSafeInteger  168
  • 7.2 Math  170
  • 7.2.1 Math.sign  171
  • 7.2.2 Math.trunc  171
  • 7.2.3 Math.cbrt  171
  • 7.2.4 Math.expm1  172
  • 7.2.5 Math.log1p  172
  • 7.2.6 Math.log10  173
  • 7.2.7 Math.log2  173
  • 7.2.8 三角函数174
  • 7.2.9 Math.hypot  174
  • 7.2.10 按位计算助手  174
  • 7.3 字符串和Unicode  175
  • 7.3.1 String#startsWith  175
  • 7.3.2 String#endsWith  176
  • 7.3.3 String#includes  177
  • 7.3.4 String#repeat  177
  • 7.3.5 字符串填充和去空白  179
  • 7.3.6 Unicode  180
  • 7.3.7 String.prototype[Symbol.iterator]  181
  • 7.3.8 有关分割字形段的提案  182
  • 7.3.9 String#codePointAt  183
  • 7.3.10 String.fromCodePoint  184
  • 7.3.11 Unicode-Aware字符串反转  185
  • 7.3.12 String#normalize  185
  • 7.4 正则表达式  186
  • 7.4.1 粘连修饰符/y  186
  • 7.4.2 Unicode修饰符/u  187
  • 7.4.3 具名捕获组  188
  • 7.4.4 Unicode属性转义  190
  • 7.4.5 后行断言  191
  • 7.4.6 新的/s(dotAll)修饰符  193
  • 7.4.7 String#matchAll  193
  • 7.5 Array  196
  • 7.5.1 Array.from  196
  • 7.5.2 Array.of  198
  • 7.5.3 Array#copyWithin  199
  • 7.5.4 Array#fill  200
  • 7.5.5 Array#find和Array#findIndex  201
  • 7.5.6 Array#keys  201
  • 7.5.7 Array#values  202
  • 7.5.8 Array#entries  202
  • 7.5.9 Array.prototype[Symbol.iterator]  202
  • 第8章 JavaScript模块  204
  • 8.1 CommonJS  204
  • 8.2 JavaScript模块  209
  • 8.2.1 严格模式  209
  • 8.2.2 export语句  209
  • 8.2.3 import语句  213
  • 8.2.4 动态import()  215
  • 8.3 ES模块的实践考量  216
  • 第9章 实用建议  219
  • 9.1 变量声明  219
  • 9.2 模板字面量  223
  • 9.3 简写及对象解构  227
  • 9.4 剩余参数和扩展运算符  229
  • 9.5 函数偏好  231
  • 9.6 类和代理  235
  • 9.7 异步代码流  238
  • 9.8 复杂性蠕变、抽象及约定  241

资源下载

资源下载地址1:https://pan.baidu.com/s/1QXLsyoClNXdu4eM1I8JmpQ

相关资源

网友留言