ES6 带来了很多新的 JavaScript 特性,相信大家都已经在自己的项目中多多少少用到了。那么这些语法特性是由谁制定出来的?接下来会有哪些新的特性?相信很多同学并不了解。
接下来我就详细讲一下 ECMAScript 相关的一些概念。建议大家都好好读读,会提升你学习 JavaScript 的方式。
Ecma 国际
是一个技术标准制定的协会,前身为欧洲计算机制造商协会,这个组织的目标是评估、开发和制定计算机标准,总部设在日内瓦。
ECMA-262
这是由 Ecma 国际发布的一项标准。它包含通用目的的脚本语言的规范。
ECMAScript
是由 Ecma 国际通过 ECMA-262 标准化的脚本程序设计语言。
JavaScript
ECMAScript 语言的实现,或者叫方言(另外的 ECMAScript 方言还有 Jscript 和 ActionScript),是 ECMA-262 标准的实现和扩展。在日常场合,ECMAScript 和 JavaScript 可以互换的
TC39
TC39(Technical Committee 39)是一个推动 JavaScript 发展的标准委员会,由各个主流浏览器厂商的代表构成,GitHub 主页为
https://github.com/tc39Stage
每一项新特性要最终纳入 ECMAScript 规范中,需要经历一个由 TC39 拟定的处理过程,称为 TC39 process。一共有五个阶段,每个阶段的变动都需要由 TC39 委员会批准。可以在下面的地址看到
https://github.com/tc39/proposalsStage 0
Strawman(展示阶段)
任何 TC39 成员,或者注册为 TC39 贡献者的会员,都可以提交。类似于选秀的海选阶段,由 TC39 评委审核通过则会被列入 stage 0 proposals,地址是
https://github.com/tc39/proposals/blob/master/stage-0-proposals.mdStage 1
Proposal(征求意见阶段)
该阶段产生一个正式的提案,由一个 TC39 成员带头负责。需要描述清楚该功能要解决什么问题,解决方案中必须包含例子,API 以及相关的语义和算法。存在哪些潜在的问题以及实现它所面临的挑战。
Stage 2
Draft(草案阶段)
草案是规范的第一个版本,与最终标准基本一致。
草案之后只接受增量修改。草案中包含新增特性语法和语义的,要有尽可能完善的说明,允许包含一些待办事项或者占位符。
必须包含2个实验性的具体实现,其中一个可以是借助转译器实现的,例如 Babel。
Stage 3
Candidate(候选人阶段)
获取来自具体实现和用户的反馈,只有出现了重大问题才会修改。评审人和 ECMAScript 的编辑需要在规范上签字,至少要有两个符合规范的具体实现。
Stage 4
Finished(定案阶段)
已经准备就绪,该特性会出现在年度发布的规范之中。需要通过 Test 262 的验收测试
https://github.com/tc39/test262有2个通过测试的实现,ECMAScript 的编辑必须在规范上签字
最新评论