es6

 

    ECMAScript 6.0(以下简称 ES6)是 JavaScript
语言的后生标准,已经在二零一四年三月标准颁发了。它的目的,是驱动 JavaScript
语言可以用来编排复杂的特大型应用程序,成为公司级开发语言。

    

4、Babel 转码器

Babel 是一个周边采纳的 ES6 转码器,能够将 ES6
代码转为 ES5 代码,从而在现有条件进行。那代表,你可以用 ES6
的不二法门编写程序,又不要操心现有条件是不是匡助。上边是二个例证。

// 转码前
input.map(item => item + 1);

// 转码后
input.map(function (item) {
  return item + 1;
});

上面包车型地铁原始代码用了箭头函数,Babel
将其转为普通函数,就能在不扶助箭头函数的 JavaScript 环境进行了。

三 、安插进程

各大浏览器的新型版本,对 ES6
的支撑能够查看kangax.github.io/es5-compat-table/es6/。随着年华的延期,协理度已经越来越高了,超越十分九的
ES6 语法本性都达成了。

Node 是 JavaScript 的服务器运维条件(runtime)。它对 ES6
的协理度更高。除了那么些暗中同意打开的效应,还有部分语法功用已经达成了,可是暗中同意没有打开。使用上面包车型大巴命令,可以查阅
Node 已经达成的 ES6 个性。

$ node --v8-options | grep harmony

上边命令的出口结果,会因为版本的不等而有所差别。

本人写了1个工具 ES-Checker,用来检查种种运转条件对
ES6
的支撑意况。访问ruanyf.github.io/es-checker,能够看到您的浏览器扶助ES6 的品位。运维上边包车型大巴吩咐,能够查看你正在使用的 Node 环境对 ES6
的协理程度。

$ npm install -g es-checker
$ es-checker

=========================================
Passes 24 feature Dectations
Your runtime supports 57% of ECMAScript 6
=========================================

 


命令行转码babel-cli

Babel提供babel-cli工具,用于命令行转码。

它的装置命令如下。

$ npm install --global babel-cli

主导用法如下。

# 转码结果输出到标准输出
$ babel example.js

# 转码结果写入一个文件
# --out-file 或 -o 参数指定输出文件
$ babel example.js --out-file compiled.js
# 或者
$ babel example.js -o compiled.js

# 整个目录转码
# --out-dir 或 -d 参数指定输出目录
$ babel src --out-dir lib
# 或者
$ babel src -d lib

# -s 参数生成source map文件
$ babel src -d lib -s

地点代码是在大局环境下,进行 Babel
转码。那意味,如若项目要运营,全局环境必须有
Babel,也正是说项目产生了对环境的借助。另一方面,那样做也无从支撑不一致档次应用区别版本的
Babel。

一个解决办法是将babel-cli安装在品种里面。

# 安装
$ npm install --save-dev babel-cli

然后,改写package.json

{
  // ...
  "devDependencies": {
    "babel-cli": "^6.0.0"
  },
  "scripts": {
    "build": "babel src -d lib"
  },
}

转码的时候,就推行上边包车型客车命令。

$ npm run build




-----------参考es6入门

1、ECMAScript 和 JavaScript 的关系

二个周边的难题是,ECMAScript 和 JavaScript 到底是如何关系?

要讲通晓这一个题材,必要回想历史。1999年一月,JavaScript 的创设者 Netscape
集团,决定将 JavaScript
提交给国际规则协会ECMA,希望那种语言可以变成国际标准。次年,ECMA
公布262号标准文件(ECMA-262)的率先版,规定了浏览器脚本语言的正统,并将这种语言称为
ECMAScript,这么些本子正是1.0版。

该专业从一初叶就是本着 JavaScript 语言制定的,可是之所以不叫
JavaScript,有八个原因。一是商标,Java 是 Sun
集团的商标,根据授权协议,唯有 Netscape 公司得以合法地应用 JavaScript
那个名字,且 JavaScript 自己也早就被 Netscape
公司挂号为商标。二是想体现那门语言的制定者是 ECMA,不是
Netscape,那样便于保证这门语言的开放性和中立性。

从而,ECMAScript 和 JavaScript
的涉及是,前者是继任者的标准化,后者是前者的一种完毕(别的的 ECMAScript
方言还有 Jscript 和 ActionScript)。日常场馆,那三个词是能够交流的。

 


配置文件.babelrc

Babel 的安排文件是.babelrc,存放在类型的根目录下。使用 Babel
的首先步,就是安插那个文件。

该公文用来设置转码规则和插件,基本格式如下。

{
  "presets": [],
  "plugins": []
}

presets字段设定转码规则,官方提供以下的规则集,你能够依据要求安装。

# 最新转码规则
$ npm install --save-dev babel-preset-latest

# react 转码规则
$ npm install --save-dev babel-preset-react

# 不同阶段语法提案的转码规则(共有4个阶段),选装一个
$ npm install --save-dev babel-preset-stage-0
$ npm install --save-dev babel-preset-stage-1
$ npm install --save-dev babel-preset-stage-2
$ npm install --save-dev babel-preset-stage-3

下一场,将那一个规则出席.babelrc

  {
    "presets": [
      "latest",
      "react",
      "stage-2"
    ],
    "plugins": []
  }

只顾,以下有所 Babel工具和模块的使用,都不可能不先写好.babelrc

 

2、ES6 与 ECMAScript 2015 的关系

ECMAScript 二零一五(简称 ES二零一四)这一个词,也是隔三差五能够看到的。它与 ES6
是何等关联吧?

2012年,ECMAScript 5.1版公布后,就从头制定6.0版了。因而,ES6
这一个词的本意,就是指 JavaScript 语言的下一个本子。

但是,因为那一个版本引入的语法成效太多,而且制定进程个中,还有很多团组织和个体不断提交新效率。事情十分的快就变得掌握了,不可能在一个版本里面包含拥有将要引入的效果。常规的做法是头阵布6.0版,过一段时间再发6.1版,然后是6.2版、6.3版等等。

唯独,标准的制定者不想这么做。他们想让规范的升级换代成为不荒谬流程:任什么人在别的时候,都得以向标准委员会提交新语法的提案,然后标准委员会各样月开三回会,评估这几个提案是不是足以接受,供给怎样创新。借使由此再三议会之后,2个提案丰盛成熟了,就能够正式进入正规了。那便是说,标准的本子升级变成了一个连发滚动的流水生产线,每一个月都会有改变。

标准委员会末了决定,标准在每年的6月份标准公布一遍,作为当下的正规化版本。接下来的岁月,就在这些版本的功底上做改变,直到下一年的1月份,草案就自然变成了新一年的版本。那样一来,就不供给从前的本子号了,只要用年份标记就足以了。

ES6 的首先个版本,就这么在二〇一四年八月公布了,正式名称就是《ECMAScript
二零一四正规》(简称 ES二零一五)。2014年四月,小幅修订的《ECMAScript
2014正经》(简称 ES2015)如期公布,那几个版本能够看作是 ES6.1
版,因为两者的差距相当的小(只新增了数组实例的includes办法和指数运算符),基本上是同3个正经。依据安插,二零一七年7月公布ES2017 标准。

故此,ES6 既是3个历史名词,也是2个泛指,含义是5.1版之后的 JavaScript
的后进标准,涵盖了ES201⑤ 、ES2015、ES2017之类,而ES二〇一五则是正规名称,特指该年公布的科班版本的言语专业。本书中关系 ES6
的地方,一般是指 ES2014 标准,但有时候也是泛指“下一代 JavaScript 语言”。