Ecma国际 大会 宣布 正式批准 ECMA-262 第6版,亦即ECMAScript 2015(曾用名:ECMAScript 6、ES6)的语言规范。
JavaScript是 Brendan Eich 在1995年用10天的时间发明的,但是它经历了20年的时间才逐渐吸收了在其它现代语言中所流行的一些特性。它并非你初学编程语言的最佳选择,但是却成就了一个非常好的思想:即在浏览器中使用的语言,因此JavaScript迅速地吸引了人们的眼球,并于第二年提交了标准化请求。1997年由Ecma发布了1.0版本,1998年的2.0版本只进行了小幅修改,1999年发布3.0版本,增加了一些新的特性。
自此以后的几年中JavaScript便被冷落,直到Ajax作为浏览器中客户端应用的解决方案一举兴起,改进JavaScript的工作才重整旗鼓,但是起初并非所有相关人员都完全赞同接下来的发展方向。直到2008年,ECMAScript技术委员会 TC39 就草案制定问题达成一致,决定先进行一次小规模迭代,亦即2009年发布的ECMAScript 5(ES5),随后再进行一次更大规模的迭代,也就是这次所批准的ES6。
最新版本JavaScript的官方名称是ECMAScript 2015,Ecma国际意在更频繁地发布包含小规模增量更新的新版本,下一版本将于2016年发布,命名为ECMAScript 2016。从现在开始,新版本将按照ECMAScript+年份的形式发布。
ES6是继ES5之后的一次主要改进,语言规范由ES5.1时代的245页扩充至600页。ES6增添了许多必要的特性,例如:模块和类,以及一些实用特性,例如Maps、Sets、Promises、生成器(Generators)等。尽管ES6做了大量的更新,但是它依旧完全向后兼容以前的版本,标准化委员会决定避免由不兼容版本语言导致的“web体验破碎”。结果是,所有老代码都可以正常运行,整个过渡也显得更为平滑,但随之而来的问题是,开发者们抱怨了多年的老问题依然存在。
目前,没有一款完全支持ES6的JavaScript代理(无论是浏览器环境还是服务器环境),所以热衷于使用语言最新特性的开发者需要将ES6代码转译为ES5代码。等到主流浏览器完全实现ES6特性大概需要一年左右的时间,若想一睹各代理对于ES6特性的支持情况,我们推荐大家参考由 kangax 维护的 ECMAScript Compatibility Table 。
ECMAScript 2016的制定工作已经启动,许多 草案 已被提交到委员会,包括以下这些:异步方法、定型对象、并行JavaScript、类修饰符以及observables。虽然委员会正在积极评估这些特性,但我们无法预知它们的未来,其中一些会加入到下一版规范,另一些会加入未来的其它规范,剩下的将最终被遗弃。 TC39进程 解释了新特性从开始到最终被语言采用所经历的各种阶段。
JavaScript起初发展缓慢,但是最近正在飞速进化,JavaScript是持久的,未来有更大的发展空间。数以百万计的开发者正受益其中,希望标准化组织会引导其走向社区乐于见到的康庄大道。
扩展阅读: 《探索ES6:相关书籍介绍及作者采访》 ,这篇文章回顾了Axel Rauschmayer近期撰写的有关深度解析ES6新特性的书籍。
查看英文原文: ECMAScript 2015 Has Been Approved
感谢邵思华对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群 )。