概览
ECMAScript可以为不同种类的宿主环境提供核心的脚本编程能力,因此核心的脚本语言是与任何特定的宿主环境分开进行规定的…
标准委员会决定,每年6月正式发布一次标准,作为当年的正式版本。接下来的时间就在这个版本的基础上进行改动,直到下一年的6月份,草案就自然变成了新一年的版本。这样一来,就不需要以前的版本号了,只要用年份标记就可以了。
简单地说,ECMAScript描述了以下内容:
- 语法
- 类型
- 语句
- 关键字
- 保留字
- 运算符
- 对象
语法提案的流程
- Stage 0:Strawman(展示阶段)
- Stage 1:Proposal(征求意见阶段)
- Stage 2:Draft(草案阶段)
- Stage 3:Candidate(候选阶段)
- Stage 4:Finished(定案阶段)
ECMAScript 当前的所有提案都可以在 TC39 官方网站 github.com/tc39/ecma262 中查看。
部署进度
http://kangax.github.io/compat-table/es6/
转码器
Babel
ES6 转码器,可以将 ES6 代码转为 ES5 代码,从而在浏览器或其他环境执行。
// 转码前 箭头函数
input.map(item => item + 1);
// 转码后
input.map(function (item) {
return item + 1;
});
Babel
的配置文件是 .babelrc
,存放在项目的根目录下。使用Babel的第一步就是配置这个文件。
基本格式如下:
{
"presets": [],
"plugins": []
}
网页实时将 ES6 代码转为 ES5代码,对性能会有影响。生产环境需要加载已转码的脚本。
许多工具需要Babel进行前置转码,如 ESLint 和 Mocha。
ESLint 用于静态检查代码的语法和风格,安装命令如下:
npm install --save-dev eslint babel-eslint
然后,在项目根目录下新建一个配置文件 .eslintrc,在其中加入 parser 字段。
{
parser: 'babel-eslint',
"rules": {
...
}
}
Traceur
google 公司的 Traceur 转码器,也可以将 ES6 代码转为 ES5 代码。
历史版本
- ES 2019
- ES 2018
- ES 2017
- ES 2016(ES 6.1,2016年6月)
- ECMAScript 2015(ES 6,2015年6月)
- ECMAScript 5.1(2011年6月)
- ECMAScript 5.0(ES 5,2009年12月)
- ECMAScript 1.0(1997年)