Skip to content

Latest commit

 

History

History
39 lines (23 loc) · 1.78 KB

1.5.md

File metadata and controls

39 lines (23 loc) · 1.78 KB

1.5 ES6 的目标

Harmony/ES6 的原始项目有几个目标。在下面的子节里,我会讲解其中一些目标。

1.5.1 目标:成为一门更好的语言

目标是:成为一门对编写如下程序更友好的语言:

  • 1、复杂的应用;
  • 2、应用之间共享的库(可能包含 DOM 操作);
  • 3、针对新版本的代码生成器。

子目标(1)承认了用 JavaScript 开发的应用已经变得很大了。达成这个目标的关键 ES6 特性就是内置模块。

模块也是目标(2)的解决方案。说句题外话,在 JavaScript 里实现 DOM 是出了名的困难。 ES6 的 Proxy 应该会有所帮助(这会在单独的一章中讲解)。

特意添加了几个特性,这些特性不是为了提升 JavaScript ,而是使其它语言更容易编译成 JavaScript 。举两个例子:

  • Math.fround() - 舍入为32位的浮点数
  • Math.imul() - 两个32位整数相乘

它们对于将其它语言(例如 C/C++ 通过 Emscripten 编译)编译成 JavaScript 是很有用的。

1.5.2 目标:提升互操作性

目标是:提升互操作性,尽可能采用事实上的标准。

四个例子:

  • 类:基于现今构造器的使用方式。
  • 模块:从 CommonJS 模块格式中提取设计思想。
  • 箭头函数:从 CoffeeScript 中借用过来的语法。
  • 命名函数参数:对于命名参数,没有内置的支持。但是,可以通过对象字面量结合参数定义的解构来实现命名参数。

1.5.3 目标:版本控制

目标是:尽量使版本控制简单并且线性的。

正如前面提到的, ES6 避免“ One JavaScript ”式的版本管理:在一个 ES6 的代码库里,所有代码都是 ES6 的,没有任何一部分是 ES6 特有的。