一、简介
ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。
1、ECMAScript 和 JavaScript 到底是什么关系?
JavaScript :所属公司为:Netscape
ECMAScript:所属公司为:ECMA
ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 方言还有 Jscript 和 ActionScript)。日常场合,这两个词是可以互换的。
2、ES6 与 ECMAScript 2015 的关系
ES6 既是一个历史名词,也是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了 ES2015、ES2016、ES2017 等等,而 ES2015 则是正式名称,特指该年发布的正式版本的语言标准。
本书中提到 ES6 的地方,一般是指 ES2015 标准,但有时也是泛指“下一代 JavaScript 语言”。
3、ECMAScript 的历史
ES6 从开始制定到最后发布,整整用了 15 年。
前面提到,ECMAScript 1.0 是 1997 年发布的,接下来的两年,连续发布了 ECMAScript 2.0(1998 年 6 月)和 ECMAScript 3.0(1999 年 12 月)。3.0 版是一个巨大的成功,在业界得到广泛支持,成为通行标准,奠定了 JavaScript 语言的基本语法,以后的版本完全继承。
直到今天,初学者一开始学习 JavaScript,其实就是在学 3.0 版的语法。
4、部署进度
各大浏览器的最新版本,对 ES6 的支持度已经越来越高了,超过 90%的 ES6 语法特性都实现了。
Node 是 JavaScript 的服务器运行环境(runtime)。它对 ES6 的支持度更高。除了那些默认打开的功能,还有一些语法功能已经实现了,但是默认没有打开。使用下面的命令,可以查看 Node 已经实现的 ES6 特性。
$ node--v8-options|grep harmony
上面命令的输出结果,会因为版本的不同而有所不同。
运行下面的命令,可以查看你正在使用的 Node 环境对 ES6 的支持程度。
$ npm install-g es-checker$ es-checker
=========================================
Passes24feature Dectations
Your runtime supports 57%of ECMAScript6
=========================================
5、Babel 转码器
Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码,从而在现有环境执行。这意味着,你可以用 ES6 的方式编写程序,又不用担心现有环境是否支持。下面是一个例子。
5.1 配置文件转码:Babel 的配置文件是.babelrc,
5.2 命令行转码babel-cli:Babel 提供babel-cli工具,用于命令行转码。
5.3 在线转换 :Babel 提供一个REPL 在线编译器,可以在线将 ES6 代码转为 ES5 代码。转换后的代码,可以直接作为 ES5 代码插入网页运行。
5.4 Traceur 转码器:Google 公司的Traceur转码器,也可以将 ES6 代码转为 ES5 代码。
二、let 和 const 命令
1、let 命令
基本用法
ES6 新增了let命令,用来声明变量。用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
网友评论