ES6 入门系列之ES6的前世今生

要学好javascript , ECMAScript标准比什么都强,

ESMAScript标准已经用最严谨的语言和最完美的角度展现了语言的实质和特性。

理解语言的本质后,你已经从沙堆里挑出了珍珠,能经得起时光的磨砺。

有很多问题在网络上被包装了太多次,解释的千奇百怪,但用规范的语言来描述竟是如此简单。

什么是ES6, 刚开始学ES6的时候我以为它就是ECMAScript2015,

然而ES6是一个泛指, 它是指5.1版本后JavaScript的下一代标准,它涵盖了ES2015, ES2016, ES2017等。

那ES6语法又是谁提出来的呢?

任何人都可以向标准委员会提案, 要求修改语言标准。一种新的语法从提案变成正式标准,

需要经过五个阶段,每个阶段的变动都要由TC39委员会批准。

  • Stage0: Strawman(展示阶段)
  • Stage1: Proposal(征求意见阶段)
  • Stage2: Draft(草案阶段)
  • Stage3: Candidate(候选阶段)
  • Stage4: Finished(定案阶段)

一个提案只要能进入草案阶段,就基本认为其包括在以后的正式标准里,而ES6从开始定制到最后发布,整整用了15年。

1997年, ECMAScript 1.0 发布

1996 年 11 月,JavaScript 的创造者 Netscape 公司,决定将 JavaScript 提交给国际标准化组织ECMA,希望这种语言能够成为国际标准。次年,ECMA 发布 262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为 ECMAScript,这个版本就是 1.0 版。

1998年6月, ECMAScript 2.0 发布

1998 年 6 月发布了 ECMAScript 2.0 版,该版本是些小修改,主要是为了与 ISO 标准保持一致

1999年12月, ECMAScript 3.0 发布

1999年12月发布了ECMAScript 3.0版本。3.0版是一个巨大的成功,在业界得到广泛支持,成为通行标准,奠定了JavaScript 语言的基本语法,以后的版本完全继承。直到今天,初入web前端的学习者学习JavaScript,其实就是在学3.0版的语法。

2000年,ECMAScript 4.0开始酝酿,直至2008年7月终止ES4的开发

2000年,ECMAScript 4.0开始酝酿,但是相信大部分本文的读者没有听过ES4,因为ES4太激进了,对ES3做了彻底的升级,完全不兼容ES3,这意味着用ES3写的网页以后就不能用了,导致标准委员会的一些成员不愿意接受, 所以这个版本最后没有通过,但是其大部分内容被ES6所继承,所以说ES6制定的起点应该是在2000年。

具体是怎么回事呢?

2007年10月, ECMAScript 4.0草案发布,本来预计次年8月发布正式版本,但是各方对于是否通过这个标准发生了严重分歧, 以Yahoo, Microsoft, Google为首的大公司,反对对JavaScript的大幅升级,主张小幅改动;以JavaScript创造者Brendan Eich为首的Mozilla公司,则坚持当前的草案。

2008年7月, 由于各方分歧太大, ECMA开会决定终止ES4的开发,将其中涉及现有功能改善的一小部分发布为ES3.1,而将其他激进的设想扩大范围,放入以后的版本,该版本项目代号为Harmony(和谐),会后不久, ES3.1 就改名为 ES 5了。

2009年12月,ES5.0正式发布。

Harmony 项目则一分为二, 一些较为可行的设想定名为JavaScript.next继续开发,后来演变成ES6;一些不太成熟的设想被视为JavaScript.next.next, 更远的将来考虑推出。TC39 委员会的总体考虑是,ES5 与 ES3基本保持兼容,较大的语法修正和新功能加入,将由 JavaScript.next 完成。当时,JavaScript.next 指的是ES6,第六版发布以后,就指 ES7。TC39 的判断是,ES5 会在 2013 年的年中成为 JavaScript开发的主流标准,并在此后五年中一直保持这个位置。

2011年6月,ES5.1发布,并且成为ISO国际标准(ISO/IEC 16262:2011)。

2013年3月, ES6草案冻结,不再添加新功能,新的功能设想将放到ES7中。

2013年12月,ES6草案发布,此后时12个月的讨论期,听取各方意见。

2015年6月17日,ES6正式通过,即ECMAScript 2015,成为国际标准。从2000年算起,已经过了15年。ES6 的第一个版本,就这样在2015年6月发布了,正式名称就是《ECMAScript 2015标准》(简称ES2015)。

2016年6月19日,ES7发布,小幅修订的《ECMAScript 2016标准》(简称 ES2016)如期发布,这个版本可以看作是ES6.1 版,因为两者的差异非常小(只新增了数组实例的includes方法和指数运算符),基本上是同一个标准。

因此,ES6 既是一个历史名词,也是一个泛指,含义是5.1版以后的 JavaScript的下一代标准,涵盖了ES2015、ES2016、ES2017等等,而ES2015 则是正式名称,特指该年发布的正式版本的语言标准。本书中提到ES6 的地方,一般是指 ES2015 标准,但有时也是泛指“下一代 JavaScript 语言”。

ECMAScript 经历了这些变故后, 也从语言的角度反应了各大厂商之间的立场差异,但是JavaScript遵守一个JavaScript的原则,就是所有的版本都要向后兼容, web语言的解释器版本不是由开发者决定的,而是由用户决定的,所以JavaScript无法向Python, Ruby, Perl

那样, 发布一个不向下兼容的大版本, 这就是ES4 失败的根源。

现在各大浏览器的最新版本对ES6的支持度越来越高, 如果你想检查你的各种运行环境对ES6的支持情况,可以下载es-checker

访问ruanyf.github.io/es-checker,可以看到您的浏览器支持ES6的程度。运行下面的命令,可以查看你正在使用的Node环境对ES6的支持程度。

命令行输入:

$ npm install -g es-checker

$ es-checker

2017 年6月,ES8发布,即ECMAScript 2017。2017 年 6 月,ECMAScript 2017 由 TC39 委员会正式发布。这是ECMAScript发布的第 8个版本ES.Next,这个是不稳定版本。

2018年6月底,ES9发布,即ECMAScript 2018。因为是ECMAScript的第九个版本,所以也称为ES9 。它于2018年6月发布。

文章摘抄自 ———— 阮一峰老师的ES6标准入门。

转载于:https://www.cnblogs.com/LHLVS/archive/2019/05/20/10893725.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值