ES 五个阶段

举报
tea_year 发表于 2021/12/23 01:44:27 2021/12/23
【摘要】 1ECMAScript功能的TC39过程 本章解释了所谓TC39工艺,它控制ECMAScript功能的设计方式,从ECMAScript 2016(ES7)开始。 1.1谁设计ECMAScript? 答...

1ECMAScript功能的TC39过程

本章解释了所谓TC39工艺,它控制ECMAScript功能的设计方式,从ECMAScript 2016(ES7)开始。
1.1谁设计ECMAScript?

答:TC39(技术委员会39)。

TC39型是开发JavaScript的委员会。它的成员是公司(除其他外,所有主要的浏览器供应商)。TC39定期开会其会议由成员派来的代表和受邀专家出席。会议记录是在线可用让你了解TC39是如何工作的。

偶尔(甚至在本书中),你会看到这个词TC39成员指的是人类。那么它的意思是:TC39成员公司派出的代表。

值得注意的是,TC39是以协商一致的方式运作的:决策要求绝大多数人同意,没有人强烈反对,可以否决。对于许多成员来说,协议导致了真正的义务(他们必须实现特性等)。
1.2ECMAScript是如何设计的?
1.2.1条问题:ECMAScript 2015(ES6)版本太大

ECMAScript的最新版本ES6是一个大型的版本,它在ES5之后几乎6年(2009年12月与2015年6月)被标准化。两个版本之间的时间间隔有两个主要问题:

比发行版更早准备好的特性必须等到发行版完成。
需要很长时间才能完成的特性面临着打包的压力,因为将它们推迟到下一个版本意味着要等待很长时间。这些特性也可能延迟发布。

  
 
  • 1
  • 2

因此,从EcmaScript2016(ES7)开始,发布将更加频繁,结果会更小。每年将有一个版本,它将包含所有的功能,在每年的最后期限完成。
1.2.2条解决方案:TC39工艺

ECMAScript特性的每个建议都要经过以下步骤成熟阶段,从阶段0开始。从一个阶段到下一个阶段的进展必须得到TC39的批准。
1.2.2.1第0阶段:斯特劳曼

这是怎么一回事?一种提交演化ECMAScript想法的自由形式方式。提交资料必须来自TC39会员或非会员已注册为TC39贡献者.

需要什么?该文件必须在TC39会议上进行审查(来源)然后添加到包含第0阶段建议的页面.
1.2.2.2第一阶段:提案

这是怎么一回事?对该功能的正式提议。

需要什么?所谓的冠军必须确定谁对提案负责。冠军或共同冠军必须是TC39的成员(来源). 提案所解决的问题必须用散文来描述。解决方案必须通过示例、API以及语义和算法的讨论来描述。最后,必须确定提案的潜在障碍,例如与其他功能的互动和实施方面的挑战。实施方面,需要polyfill和演示。

下一步是什么?通过接受第1阶段的提案,TC39表示愿意审查、讨论并为提案作出贡献。今后,该提案预计会有重大变化。
1.2.2.3第二阶段:草稿

这是怎么一回事?规范中的第一个版本。在这一点上,该特性最终可能包含在标准中。

需要什么?提案现在还必须对特性的语法和语义有一个正式的描述(使用ECMAScript规范的形式语言)。描述应尽可能完整,但可以包含TODO和占位符。这个特性需要两个实验性的实现,但是其中一个可以在transpiler中,比如Babel。

下一步是什么?从现在开始,预计只会有增量变化。
1.2.2.4条第三阶段:候选人

这是怎么一回事?该提案已基本完成,现在需要来自实现和用户的反馈,以进一步推进。

需要什么?规范文本必须完整。指定的审阅者(由TC39指定,而不是由champion指定)和ECMAScript规范编辑器必须在规范文本上签名。必须至少有两个符合规范的实现(默认情况下不必启用)。

下一步是什么?从此以后,只应对实现及其使用引起的关键问题进行更改。
1.2.2.5第4阶段完成

这是怎么一回事?建议已准备好纳入标准。

需要什么?在提案进入这一阶段之前,需要以下几点:

测试262验收测试(大致是用JavaScript编写的语言特性的单元测试)。
两个通过测试的规范兼容的发布实现。
具有丰富的实施实践经验。
ECMAScript规范编辑器必须在规范文本上签名。

  
 
  • 1
  • 2
  • 3
  • 4

下一步是什么?该建议将尽快包含在ECMAScript规范中。当规范作为一个标准通过每年的批准时,提案也会作为其中的一部分得到批准。
1.3不要称它们为ECMAScript 20xx特性

一旦达到标准,你就可以看到它的一个阶段,你就可以看到它的功能了。那么它很可能会包含在下一个ECMAScript版本中,但也不是百分之百确定(可能需要更长的时间)。因此,你不能再称提案为“ES7功能”或“ES2016功能”。因此,我最喜欢的两种撰写文章和博客文章标题的方式是:

“ECMAScript建议:foo特性”。这篇文章的开头提到了提案的阶段。
“ES.stage2:foo功能”

  
 
  • 1
  • 2

如果一个建议处于第4阶段,我可以将其称为ES20xx特性,但最安全的做法是等到spec编辑器确认它将包含在哪个版本中。对象。观察是ECMAScript提案的一个例子,该提案一直进行到第2阶段,但最终被撤回。

文章来源: aaaedu.blog.csdn.net,作者:tea_year,版权归原作者所有,如需转载,请联系作者。

原文链接:aaaedu.blog.csdn.net/article/details/109701564

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。