ECMAScript从1997年第一版诞生依赖,经过无数人的“踩坑”和“填坑”,到现在,ES12呼之欲出。那么我们不妨讨论一下ES的发展历程,看它如何统一江湖,看它“曲折”而又令人期待的发展之路。
最近分析typescript,其中tsconfig.json有一个配置项target,其值如下:
指定ECMAScript目标版本 "ES3"
(默认)、 "ES5"
、 "ES6"
、"ES2015"
、"ES2016"
、 "ES2017"
、 "ESNext"
。
注意: "ESNext"最新的生成目标列表为 ES proposed features
如此,按照严谨性的原则,我们查询一下每个target值之间的差异。
历史进程
上图按照时间顺序说明了JavaScript、JScript和ECMAScript的发展。
显示在网景工作的Brendan Eich临危受命,用十天时间设计出LiveScript的第一个版本。临时发布前为了讨好Sun公司和Java程序员,LiveScript改名为JavaScript。
微软这边不甘示弱,你的浏览器有脚本功能,我的浏览器也要有啊。于是在IE3.0版本附带退出JScript。为什么叫JScript?因为JavaScript已经被网景公司注册,微软作为一个商业公司必须用一个新的名字。
这下可苦了网页开发者了,虽然两个浏览器都支持脚本,但是两种脚本语法和功能都有区别,一个网页难道要写两套脚本?
一直致力于指定消费电子标准的ECMA组织,审时度势,觉得有必要把网页脚本的语法和功能统一一下,预时发布ECMAScript标准(第一版)。之后对该标准进行了一些修改,更新到ECMAScript3(以下简称ES3)。
所以说ECMAScript是这种网页脚本的标准,而JavaScript和JScript则是ECMAScript的两种实现。
此后的浏览器厂商都尽量依据ES3来实现自己的脚本语言。如IE8中的JScript5.8、Firefox中的JavaScript1.5,都是兼容ES3标准的。
从上图你会发现,之后的9年(2000-2009),ES没有任何升级。期间的ES4居然被放弃了。具体原因博友们可以去查一下资料。直到2009年,ES5横空出世,同年,前端界也出了一个大事件——Node.js发布。Node.js是一个基于Google Chrome的V8引擎(2008年发布)的JS运行环境。
从这一年开始,前端火了。
因为JS跳出了浏览器,可以在任何地方运行了。前端工程师被浏览器禁锢的创造力,如雨后春笋般爆发。
JS维持了几年的高速增长后,大家发现JS语言本身,已经不适应他的发展速度了,于是ES的更新越来越快,2015年发布ES6,2016年的ES7直接更名为ES2016,你猜对了,以后ES说不定会每年更新一次了……
后续: ES2017、ES2018陆续出现,在许多产商的共同努力一下,兼容ECMA逐渐成为共识。
ECMA的版本差异
如上所述,说起ES的标准不得不提ECMA-262规范,前两个版本更新尚算给力,进入版本3之后,版本4莫名夭折,终于在2009年等来版本5,之后进入6年的沉寂,终于在2015年,在千呼万唤中ES6正式发布。ES6的到来为JS的发展带来众多特性,同时也开启了ES版本发展的新纪元。下面,我列举了ECMA的发展历程:
版本 | 时间 | 描述 | 别名 | 下载地址 |
---|---|---|---|---|
ECMA-262 1st edition | 1997-06 | 第一版发版 | ||
ECMA-262 2nd edition | 1998-08 | |||
ECMA-262 3rd edition | 1999-12 | 第三版发布,几乎所有浏览器都兼容该版本 | ES3 |