1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-24 18:32:22 +00:00

docs(intro): edit intro

This commit is contained in:
ruanyf 2016-10-07 12:51:15 +08:00
parent 3a1b3690c7
commit d95493c10a

View File

@ -26,9 +26,21 @@ ECMAScript 6.0以下简称ES6是JavaScript语言的下一代标准
ES6的第一个版本就这样在2015年6月发布了正式名称就是《ECMAScript 2015标准》简称ES2015。2016年6月小幅修订的《ECMAScript 2016标准》简称ES2016如期发布这个版本可以看作是ES6.1版,因为两者的差异非常小(只新增了数组实例的`includes`方法和指数运算符基本上是同一个标准。根据计划2017年6月将发布ES2017标准。
因此ES6既是一个历史名词也是一个泛指含义是5.1版以后的JavaScript的下一代标准涵盖了ES2015、ES2016、ES2017等等ES2015则是正式名称特指该年发布的正式版本的语言标准。
因此ES6既是一个历史名词也是一个泛指含义是5.1版以后的JavaScript的下一代标准涵盖了ES2015、ES2016、ES2017等等,而ES2015则是正式名称特指该年发布的正式版本的语言标准。本书中提到“ES6”的地方一般是指ES2015标准但有时也是泛指“下一代JavaScript语言”。
本书的目标是介绍5.1版本以后所有的新语法不仅包括已经写入标准的语法还包括正在讨论的、已经纳入标准的提案。书中提到“ES6”的地方都是这个泛指的含义。
## 语法提案的批准流程
任何人都可以向TC39标准委员会提案。一种新的语法从提案到变成正式标准需要经历五个阶段。每个阶段的变动都需要由TC39委员会批准。
- Stage 0 - Strawman展示阶段
- Stage 1 - Proposal征求意见阶段
- Stage 2 - Draft草案阶段
- Stage 3 - Candidate候选人阶段
- Stage 4 - Finished定案阶段
一个提案只要能进入Stage 2就差不多等于肯定会包括在以后的正式标准里面。ECMAScript当前的所有提案可以在TC39的官方网站[Github.com/tc39/ecma262](https://github.com/tc39/ecma262)查看。
本书的写作目标之一是跟踪ECMAScript语言的最新进展介绍5.1版本以后所有的新语法。对于那些明确将要列入标准的新语法尤其是那些Babel转码器详见后文已经支持的功能也将予以介绍。
## ECMAScript的历史
@ -635,54 +647,3 @@ fs.writeFileSync('out.js', result.js);
fs.writeFileSync('out.js.map', result.sourceMap);
```
## ECMAScript 7
2013年3月ES6的草案封闭不再接受新功能了。新的功能将被加入ES7。
任何人都可以向TC39提案从提案到变成正式标准需要经历五个阶段。每个阶段的变动都需要由TC39委员会批准。
- Stage 0 - Strawman展示阶段
- Stage 1 - Proposal征求意见阶段
- Stage 2 - Draft草案阶段
- Stage 3 - Candidate候选人阶段
- Stage 4 - Finished定案阶段
一个提案只要能进入Stage 2就差不多等于肯定会包括在ES7里面。
本书的写作目标之一是跟踪ECMAScript语言的最新进展。对于那些明确的、或者很有希望列入ES7的功能尤其是那些Babel已经支持的功能都将予以介绍。
本书介绍的ES7功能清单如下。
**Stage 0**
- Function Bind Syntax函数的绑定运算符
- String.prototype.at字符串的静态方法at
**Stage 1**
- Class and Property DecoratorsClass的修饰器
- Class Property DeclarationsClass的属性声明
- Additional export-from Statementsexport的写法改进
- String.prototype.{trimLeft,trimRight}:字符串删除头尾空格的方法
**Stage 2**
- Rest/Spread Properties对象的Rest参数和扩展运算符
**Stage 3**
- SIMD API“单指令多数据”命令集
- Async Functionsasync函数
- Object.values/Object.entriesObject的静态方法values()和entries()
- String padding字符串长度补全
- Trailing commas in function parameter lists and calls函数参数的尾逗号
- Object.getOwnPropertyDescriptorsObject的静态方法getOwnPropertyDescriptors
**Stage 4**
- Array.prototype.includes数组实例的includes方法
- Exponentiation Operator指数运算符
ECMAScript当前的所有提案可以在TC39的官方网站[Github.com/tc39/ecma262](https://github.com/tc39/ecma262)查看。
Babel转码器可以通过安装和使用插件来使用各个stage的语法。