编辑推荐
轻松学习JavaScript的新进展,包括ES6及后续更新。
内容简介
本书旨在让读者轻松学习JavaScript的新进展,包括ES6及后续更新。书中提供了大量实用示例,以循序渐进的方式讲解了异步函数、对象解构、动态导入及异步生成器等内容。本书不仅介绍了箭头函数、解构、模板字面量以及其他语法方面的新元素,还全面展示了ES6引入的流程控制机制,以及如何高效地简化自己的代码。本书的讨论还涉及ES6内置的新集合类型、使用代理控制属性访问、ES6中内置API的改进、CommonJS与ECMAScript模块的互用性等方面。
作者简介
作者尼古拉斯·贝瓦夸(Nicolás Bevacqua),知名JavaScript布道师,来自阿根廷的JavaScript编程高手,目前是Elastic公司用户界面工程师。另著有《JavaScript Web应用开发》一书。
章节目录
版权信息
O'Reilly Media, Inc. 介绍
业界评论
本书赞誉
序
前言
读者对象
为什么编写本书
本书内容
排版约定
O'Reilly Safari
联系我们
致谢
电子书
第1章 ECMAScript和JavaScript的未来
1.1 JavaScript标准简史
1.2 持续迭代的ECMAScript
1.3 浏览器支持和辅助工具
1.3.1 Babel转译器简介
1.3.2 使用ESLint提高代码质量和一致性
1.4 ES6特性
1.5 JavaScript的未来
第2章 ES6基础
2.1 对象字面量
2.1.1 属性值简写
2.1.2 可计算属性名
2.1.3 方法定义
2.2 箭头函数
2.2.1 词法作用域
2.2.2 箭头函数的写法
2.2.3 优点和用例
2.3 解构
2.3.1 对象的解构
2.3.2 数组的解构
2.3.3 函数参数的默认值
2.3.4 函数参数的解构
2.3.5 解构的用例
2.4 剩余参数和扩展运算符
2.4.1 剩余参数
2.4.2 扩展运算符
2.5 模板字面量
2.5.1 字符串插值
2.5.2 多行模板字面量
2.5.3 标签模板
2.6 let和const声明
2.6.1 块级作用域和let声明
2.6.2 暂时性死区
2.6.3 const声明
2.6.4 const和let的优势
第3章 类、符号、对象和装饰器
3.1 类
3.1.1 使用类
3.1.2 类的属性和方法
3.1.3 类的继承
3.2 符号
3.2.1 本地符号
3.2.2 符号的实际用法
3.2.3 全局符号注册表
3.2.4 众所周知的符号
3.3 对象的内置改进
3.3.1 使用Object.assign扩展对象
3.3.2 使用Object.is进行对象比较
3.3.3 Object.setPrototypeOf
3.4 装饰器
3.4.1 初识JavaScript装饰器
3.4.2 装饰器叠加及不变性提醒
3.4.3 用例:C#中的特性
3.4.4 在JavaScript中装饰属性
第4章 迭代与流程控制
4.1 Promise
4.1.1 快速理解Promise
4.1.2 Promise的延续与连缀
4.1.3 创建Promise
4.1.4 Promise的状态
4.1.5 Promise#finally提案
4.1.6 Promise.all和Promise.race
4.2 迭代器协议与可迭代协议
4.2.1 迭代的原理
4.2.2 无穷序列
4.2.3 迭代对象以生成键/值对
4.2.4 打造多功能播放列表
4.3 生成器函数与生成器对象
4.3.1 生成器基础
4.3.2 手工迭代生成器
4.3.3 将生成器混入可迭代对象
4.3.4 使用生成器遍历树
4.3.5 传递生成器函数
4.3.6 处理异步流
4.3.7 在生成器上抛出错误
4.3.8 代替生成器返回
4.3.9 基于生成器的异步I/O
4.4 异步函数
4.4.1 各种异步代码
4.4.2 使用async/await
4.4.3 并发异步流
4.4.4 错误处理
4.4.5 深入理解异步函数
4.5 异步迭代
4.5.1 异步迭代器
4.5.2 异步生成器
第5章 巧妙使用ES中的集合
5.1 使用ES6 map
5.1.1 初识ES6 map
5.1.2 散列映射和DOM元素
5.2 理解和使用WeakMap
WeakMap是一个糟糕的Map吗
5.3 ES6中的Set
5.4 ES6 WeakSet
第6章 使用代理控制属性访问
6.1 了解代理
6.1.1 捕获get访问
6.1.2 捕获set访问
6.1.3 通过代理实现模式验证
6.2 可撤销代理
6.3 代理捕获器
6.3.1 has捕获器
6.3.2 deleteProperty捕获器
6.3.3 defineProperty捕获器
6.3.4 ownKeys捕获器
6.4 高级代理捕获器
6.4.1 getOwnPropertyDescriptor捕获器
6.4.2 apply捕获器
6.4.3 construct捕获器
6.4.4 getPrototypeOf捕获器
6.4.5 setPrototypeOf捕获器
6.4.6 preventExtensions捕获器
6.4.7 isExtensible捕获器
第7章 ES6中内置API的改进
7.1 数字
7.1.1 二进制和八进制字面量
7.1.2 Number.isNaN
7.1.3 Number.isFinite
7.1.4 Number.parseInt
7.1.5 Number.parseFloat
7.1.6 Number.isInteger
7.1.7 Number.EPSILON
7.1.8 Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER
7.1.9 Number.isSafeInteger
7.2 Math
7.2.1 Math.sign
7.2.2 Math.trunc
7.2.3 Math.cbrt
7.2.4 Math.expm1
7.2.5 Math.log1p
7.2.6 Math.log10
7.2.7 Math.log2
7.2.8 三角函数
7.2.9 Math.hypot
7.2.10 按位计算助手
7.3 字符串和Unicode
7.3.1 String#startsWith
7.3.2 String#endsWith
7.3.3 String#includes
7.3.4 String#repeat
7.3.5 字符串填充和去空白
7.3.6 Unicode
7.3.7 String.prototype[Symbol.iterator]
7.3.8 有关分割字形段的提案
7.3.9 String#codePointAt
7.3.10 String.fromCodePoint
7.3.11 Unicode-Aware字符串反转
7.3.12 String#normalize
7.4 正则表达式
7.4.1 粘连修饰符/y
7.4.2 Unicode修饰符/u
7.4.3 具名捕获组
7.4.4 Unicode属性转义
7.4.5 后行断言
7.4.6 新的/s(dotAll)修饰符
7.4.7 String#matchAll
7.5 Array
7.5.1 Array.from
7.5.2 Array.of
7.5.3 Array#copyWithin
7.5.4 Array#fill
7.5.5 Array#find和Array#findIndex
7.5.6 Array#keys
7.5.7 Array#values
7.5.8 Array#entries
7.5.9 Array.prototype[Symbol.iterator]
第8章 JavaScript模块
8.1 CommonJS
8.2 JavaScript模块
8.2.1 严格模式
8.2.2 export语句
8.2.3 import语句
8.2.4 动态import()
8.3 ES模块的实践考量
第9章 实用建议
9.1 变量声明
9.2 模板字面量
9.3 简写及对象解构
9.4 剩余参数和扩展运算符
9.5 函数偏好
9.6 类和代理
9.7 异步代码流
9.8 复杂性蠕变、抽象及约定
看完了
深入理解JavaScript特性是2019年由人民邮电出版社·图灵出品出版,作者[阿根廷] 尼古拉斯·贝瓦夸。
得书感谢您对《深入理解JavaScript特性》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。