1. ECMAScript 和 JavaScript 的关系
国际标准化组织ECMA 制定了语言 ECMAScript, 该标准针对 Javascript 语言制定, 不叫Javascript 原因有, 1: Java 是 Sun 公司的商标, 根据授权协议, 只有 Netscape 公司可以合法的使用, 2: 该语言的制定者是 ECMA,不是 Netscape
ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 方言还有 Jscript 和 ActionScript)
2. ES6 与 ECMAScript 2015 的关系
2011年,ECMAScript 5.1版发布后,就开始制定6.0版了。ES6 的第一个版本,就这样在2015年6月发布了,正式名称就是《ECMAScript 2015标准》(简称 ES2015)。2016年6月,小幅修订的《ECMAScript 2016标准》(简称 ES2016)如期发布。2017年6月发布 ES2017 标准。
因此,ES6 含义是5.1版以后的 JavaScript 的下一代标准,涵盖了ES2015、ES2016、ES2017等等,而ES2015 则是正式名称。
5.部署进度
node 已经实现的 ES6 特性
window 下执行命令 node --v8-options | findstr harmony,
unix 上执行命令 node --v8-options | grep harmony
6.Babel
1) 部署
新建目录 babel_test
$ cd babel_test
$ cnpm init
$ cnpm install --save-dev babel-preset-latest
新建 .babelrc 文件
新建 es6.js, 里面的代码是:
const a = 1;
console.log(a);
2)babel-cli
命令行转码babel-cli, cli 是 command-line interface (命令行界面)
基本用法如下:
$ babel example.js
结果会进行转码:
"use strict";
var a = 1;
console.log(a);
$ babel es6.js -o compiled.js
会生成 compiled.js, 里面的代码是:
"use strict";
var a = 1;
console.log(a);
3)babel-node
babel-cli工具自带一个babel-node命令
它支持Node的REPL环境的所有功能,而且可以直接运行ES6代码。
它不用单独安装,而是随babel-cli一起安装。然后,执行babel-node就进入REPL环境。
REPL 的意思是 R(read)、E(evaluate)、P(print)、L(loop);
$ babel-node
> (x => x * 2)(1)
2
$ babel-node es6.js
1
4)浏览器环境
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.4.4/babel.min.js"></script>
<script type="text/babel">
// Your ES6 code
</script>
在线转换地址
https://babeljs.io/repl/
7. Traceur 转码器
Google公司的,
在线转换地址 http://google.github.io/traceur-compiler/demo/repl.html