ES6简介
ECMAScript 6.0,简称ES6,是JavaScript语言的下一代标准,已经在2015年6月正式发布。其目标为使JavaScript可以用来编写复杂的大型应用程序,成为企业级开发语言。
ECMAScript和JavaScript的关系:
前者是后者的规格;
后者是前者的一种实现。
ECMAScript 和 JavaScript 的关系
一个常见的问题是,ECMAScript 和 JavaScript 到底是什么关系?
要讲清楚这个问题,需要回顾历史:
1996 年 11 月,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)。日常场合,这两个词是可以互换的。
部署进度
各大浏览器的最新版本,对ES6的支持可以查看https://kangax.github.io/compat-table/es6/。
Node是JavaScript的服务器运行环境,对ES6的支持度更高,除了那些默认打开的功能,还有一些语法功能已经实现了但是默认没有打开的。
Windows环境下可以通过下列的命令行查看Node已经实现的ES6特性。
node --v8-options | findstr harmony
这里附上我自己电脑上Node实现的ES6特性:
findstr命令是Windows系统自带的命令,用途是查找指定的一个或多个文件且文件中包含某些特定字符串的行,并将查找到的符合行信息完整地打印出来。
[资料来源] https://baike.baidu.com/item/FINDSTR
--v8-options
命令用于打印V8命令行选项【注意:V8选项允许单词使用破折号(-)或下划线(_)分割】
[资料来源] http://nodejs.cn/api/cli/v8_options.html
那么就可以比较清楚的知道:这个命令的实际意思是在node环境下,从V8命令行选项中找到其中有“harmony”字符串的行,并打印出来。
至于命令行中需要带有harmony
字符串,是因为:
所有ECMAScript 2015 (ES6)特性被分成三个组,分别表示shipping、staged、in progress特性——
shipping:表示在V8引擎中认为这些功能特性是稳定的,默认在node.js中开启使用,不需要在命令行中附加其他的flag
Staged:表示在V8引擎中认为是快要完成、但不能肯定其确定稳定性的功能特性,需要在命令行中附加flag:--harmony
In progress:表示在V8引擎中,这些功能需要通过各自的flag单独激活,并且除非出于测试目的,否则这是非常不鼓励的。 注意:这些标志由V8公开,如果没有任何弃用通知,可能会更改。类似:--harmony_destructuring