ES6的前世今生

最近在重新学习关于ES6这部分的内容,看了网上各种关于 ECMAScript 规范介绍和分析的文章,决定自己整理出一份学习笔记,也是为了巩固自己的记忆和理解,这其中一部分会参考阮一峰老师的ECMAScript入门,也有结合其他文章。如果有问题,欢迎指出和交流。
  这部分准备分两篇,第一篇:ES6的前世今生,主要介绍ES6发展历史以及和JavaScript的关系,第二篇:ES6的新特性总结(ES2015-ES2018)
  要说ES6,首先讲的是ECMAScript是怎么来的?1996 年 11 月,JavaScript 的创造者 Netscape (网景)公司,看见javascript被越来越多的使用,当时出现的脚本语言也很多,便决定将 JavaScript 提交给标准化组织 ECMA,希望这种语言能够成为国际标准。次年,ECMA 发布 262 号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为 ECMAScript,这个版本就是 1.0 版,也就是说,ECMA-262就是ES 1.0(1997年发布)。
  那么,ECMAScript 和 JavaScript 到底是什么关系呢?前者是后者的规格,后者是前者的一种实现(另外 ECMAScript 标准的还有 JScript 和 ActionScript)。打个比方,ECMAScript就是盖房子的标准,比如门要两米高,窗户要有三扇,而JavaScript就是盖房子用的东西。日常场合,这两个词是可以互换的。
  ECMAScript在1997年发布ES1.0以后呢,接下来的两年,连续发布了 ECMAScript 2.0(1998 年 6 月)和 ECMAScript 3.0(1999 年 12 月)。3.0 版是一个巨大的成功,在业界得到广泛支持,成为通行标准,奠定了 JavaScript 语言的基本语法,以后的版本完全继承。直到今天,我们一开始学习的 JavaScript,其实就是在学 3.0 版的语法。
  2008 年 7 月,由于对于ECMAScript4.0应该包括哪些功能,各方(雅虎、谷歌、微软等)分歧太大,争论过于激烈,ECMA 开会决定,中止 ECMAScript 4.0 的开发,将其中涉及现有功能改善的一小部分,发布为 ECMAScript 3.1,而将其他激进的设想扩大范围,放入以后的版本,由于会议的气氛,该版本的项目代号起名为 Harmony(和谐)。会后不久,ECMAScript 3.1 就改名为 ECMAScript 5。
  2009 年 12 月,ECMAScript 5.0 版正式发布。Harmony 项目则一分为二,一些较为可行的设想定名为 JavaScript.next 继续开发,后来演变成 ECMAScript 6;一些不是很成熟的设想,则被视为 JavaScript.next.next,在更远的将来再考虑推出。
  2011 年 6 月,ECMAScript 5.1 版发布,并且成为 ISO 国际标准(ISO/IEC 16262:2011)。ECMAScript 5.1 版发布后,就开始制定 6.0 版了。因此,ES6 这个词的原意,就是指 JavaScript 语言的下一个版本。
  但是,因为这个版本引入的语法功能太多,而且制定过程当中,还有很多组织和个人不断提交新功能。标准委员会最终决定,标准在每年的 6 月份正式发布一次,作为当年的正式版本。接下来的时间,就在这个版本的基础上做改动,直到下一年的 6 月份,草案就自然变成了新一年的版本。这样一来,就不需要以前的版本号了,只要用年份标记就可以了。
  ES6 的第一个版本,就这样在 2015 年 6 月发布了,正式名称就是《ECMAScript 2015 标准》(简称 ES2015),可以看做ES6.0版本。
2016 年 6 月,小幅修订的《ECMAScript 2016 标准》(简称 ES2016)如期发布,这个版本可以看作是 ES6.1 版,因为两者的差异非常小(只新增了数组实例的includes方法和指数运算符),基本上是同一个标准。
  ES6 既是一个历史名词,也是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了 ES2015、ES2016、ES2017 等等,而 ES2015 则是正式名称,特指该年发布的正式版本的语言标准。我们提到ES6,一般是指 ES2015 标准,但有时也是泛指“下一代 JavaScript 语言”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值