深入理解 JavaScript 特性 (6):ECMAScript 和 JavaScript 的未来 1.4

阅读数:14 2019 年 11 月 24 日 22:21

深入理解JavaScript特性(6):ECMAScript和JavaScript的未来 1.4

(ES6 特性)

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

ES6 规范足足有 566 页,是 ES5.1 规范 258 页的两倍多。ES6 的主要变化可以归纳为以下几类:

  • 语法糖
  • 新机制
  • 更好的语义
  • 更多的内置对象和方法
  • 对原有限制的非破坏性解决方案

语法糖是 ES6 中最重要的组成部分,包括用新类来表达对象继承、箭头函数以及属性值简写等一系列更简洁的语法。此外,解构、剩余参数以及扩展运算符等我们将介绍的特性也提供了更加语义化的编程方式。第 2 章和第 3 章将介绍 ES6 中的这部分内容。

ES6 提供了几种新机制来描述异步流程:代表一个操作最终结果的 Promise、代表一系列值的迭代器,以及能产生一系列值的特殊迭代器——生成器。基于这些新概念和结构,ES2017 提供了 async/await,让我们可以像编写同步代码那样编写异步代码。第 4 章将介绍这里提到的迭代及流控制机制。

在 JavaScript 中,使用任意字符串作为键的普通对象来创建映射是很常见的。如果键值来自用户输入,且没有验证,那么极有可能产生漏洞。为此,ES6 引入了一些新的原生内置对象来管理集合和映射,并且没有只能使用字符串作为键的限制。第 9 章将介绍相关内容。

代理对象用于重新定义可以通过 JavaScript 反射完成的操作。代理对象和其他语境中的代理类似,比如网络路由中所说的代理。它可以拦截 JavaScript 对象的任何交互,比如属性的定义、删除以及访问。鉴于代理的工作机制,我们很难用腻子脚本全面实现其功能:当然,腻子脚本是有的,只是在某些场景下其实现与规范不符。第 6 章将介绍代理。

除了新的内置对象,ES6 还对 NumberMathArray 以及 String 对象进行了一定的扩展。第 7 章将介绍添加在这些内置对象上的一系列新实例方法和静态方法。

ES6 还为 JavaScript 引入了一个原生模块系统。第 8 章从 Node.js 使用的 CommonJS 模块系统讲起,然后详细讲解 JavaScript 原生模块的语义。

因为 ES6 引入了太多修改,所以很难做到将其新特性与现有 JavaScript 知识自然整合。为此,第 9 章将用一整章的篇幅来分析每个特性的优点和重要性,以便你对 ES6 建立起初步的概念,并基于此开始使用 ES6。

深入理解JavaScript特性(6):ECMAScript和JavaScript的未来 1.4

图灵地址 http://www.ituring.com.cn/book/2452

评论

发布