用来规范JavaScript(ECMAScript)的标准ECMA-262,其实作以及制定的工作由TC39(技术委员会,Technical Committee)负责,成员来自各大科技公司,像是Google、Mozilla、微软以及Apple等等,由于ECMA-262的规格影响浏览器等前端平台甚钜,因此ECMA-262的标准制定充满角力竞争,从过去ES3到ES6制定的过程可以窥探一二。
ECMAScript规范的影响相当广泛
ECMAScript的制定影响的层面很广,在语言方面不只是JavaScript会改变,所有参考ECMA-262标准的TypeScript以及CoffeeScript等新兴语言,或是前端浏览器以及后端框架,如Node.js都会受到影响。Mozilla作为领导ECMA-262标准的一员,许多产品都深度应用JavaScript,其技术长David Bryant表示,TC39的成员背景拥有诸多开发语言设计的经验,主导ECMAScript的发展走向,Mozilla作为初期ES6制定参与者,仍希望有更多的会员加入,让整个标准的制定流程更加透明开放。
ECMA-262标准以支援前端开发为第一目标
David Bryant说,TC39的理念一直是让ECMAScript独立于各家平台,然而前端仍是最主要的应用范围,因此会将前端的需求摆在最优先的顺位,但是在Node.js这样的JavaScript后端开发框架出现后,JavaScript后端的应用热门了起来。
因此TC39在标准的制定上也尽力地避免需求与前端之外的平台相抵触,像是ES6在设计模组(Module)新功能时,便经过仔细的确认以符合Node.js的需求。
Module是Mozilla强力拥护与支持的新功能之一,另外,类别(Class)、解构赋值(Destructuring)、词法作用域(Lexical Block Scoping)、产生器(Generator)以及箭头函数(Arrow Function)都是Mozilla主推的新功能。
市面上有许多浏览器还未完全支援ES6,而许多开发者则使用转译工具,将ES6降转成ES5语法,让大部分使用者的浏览器不会因为新语法而发生执行错误的状况。
ES6虽然在去年已制定完新规格,但有许多功能还在进行当中,David Bryant说,像是SIMD向量运算以及可以让应用程式互相传递资料的共享阵列缓冲区(Shared Array Buffers)会在接下的版本加入。
未来将逐年发布小版本更新
2015年6月ECMAScript第六版出炉,距离ES5已有10年的时间,而David Bryant表示,ES6制定花了很长的时间,甚至不少功能从1999年就开始争论不休,而TC39的共识便是要缩短每个版本的发布时间,以更快更小的更新取代经长时间开发的巨幅改变版本释出。他提到,ES6的官方版本名称应为ECMAScript 2015,明年也会有增加新功能以及臭虫修正的ECMAScript 2016释出,未来也都会依照这样的做法。