javaScript的版本发布流程

简介: javaScript的版本发布流程

1. 前言

  1. 估计还有很多道友 搞不清楚 js 的版本发布流程
  2. 现在都ECMAScript 2022 正式发布 了, 但是大家用es6,还是不那么丝滑
  3. 这些都和JavaScript的版本发布流程有关,当然也和浏览器支持情况有关,但是现在已经不是 IE的时代了,这个问题基本可以忽略

2.  TC39

  1. 技术委员会39 (Technical Committee 39 - TC39)
  2. TC39ECMA技术委员为39)是推动JavaScript发展的委员会。 它的成员是都是企业(主要是浏览器厂商)。TC39会 定期的开会 , 会议的主要成员时是成员公司的代表,以及受邀请的专家。 你可以参考网络上的一个有关TC39会议的 会议纪要 来了解TC39是如何工作。
  3. 通常我们用“TC39成员”这个术语来指代一个具体的人,他是由TC39成员公司所委派的会议代表。 有一点值得注意的是,TC39必须达成全员一致的协议:决策只有被所有的成员单位一致同意时才能被做出。

3. TC39 工作职责

  1. 对 ECMAScript 进行通用、跨平台、中立的标准化。包括语法、语义、支持此语言的库和补充技术。

4. TC39 工作规划

  1. 维护和更新 ECMAScript 标准;
  2. 标识、开发和维护扩展 ECMAScript 能力的库;
  3. 开发用于验证 ECMAScript 标准是否被正确实现的测试用例集;
  4. 向覆盖更广泛的 ISO/IEC JTC 1 (整个IT行业的标准委员会) 提交选中的标准;
  5. 对补充或附加的提案进行评估。


         

5. 标准的制定流程

1. Stage0: 意向阶段 (Strawman)
  1. 纳入提案范围的内容;
  2. 展示阶段:在该阶段可以自由的使用任意方式提交推动ECMAScript发展的想法。提议可以来自TC39成员单位,也可以是一个非成员单位, 但需要 注册成为了TC39的贡献者
  3. 条件:文档必须要在TC39会议上进行审核,然后将会被添加 阶段0的建议页面中

2. Stage1: 提议阶段 (Proposal),
  1. 征求意见阶段: 附加案例,描述方案,预见潜在的挑战;
  2. 条件:必须要指派具体的人来负责该提议。该负责人或助理负责人必须是TC39的成员。该提议所解决的问题必须通过描述性的文档进行说明
    解决方法必须有例子,API,以及对语义和算法的讨论。
    最后,存在的潜在问题也必须要得到区分,例如与其他特性之间的关联,以及实现的难度。 Implementation-wise,polyfills和demos也都是必须的。
  3. 下一步:对于阶段1的提议的是否接受,TC39表明了其愿意检查、讨论和为提议做出贡献。继续向前,将会是提议的主要变化。

3. Stage2: 草案阶段 (Draft)
  1. 标准格式描述对应的语法和语义;
  2. 将会出现标准中的第一个版本。此时,将会与出现在标准中的最终特性是差不多的。
  3. 条件:此时建议必须要附加更规范化有关特性的语法和语意的说明(使用ECMAScript标准的正式语言)。
    描述应该尽可能的完整,但也可以包含待办事项列表和占位符。
    该特性需要两个实验性的实现,
    但其中一个可以在诸如Babel这样的转译器(transpiler)中。
  4. 下一步:从该改阶段只接收渐增的变化。

4 . Stage3: 候选阶段 (Candidate)
  1. 提炼从浏览器厂商和用户收集的反馈;
    2.此时提议已经接近完成,只需要得到提议实现方的反馈,以及由用户来进一步推动。
  2. 条件:标准的文本必须是完备的。指定的审稿人(由TC39指派)和ECMAScript标准的编辑必须在该标准上签字。
    必须要至少有两个符合标准的实现(可以不指定默认实现)。
  3. 下一步:至此之后,只有对实现和使用过程中出现的重大问题进行修正

5. Stage4: 完成阶段 (Finished)
  1. 正式纳入 ECMAScript 标准。
  2. 条件:在提议进入该阶段时需要满足以下的条件
  • Test 262验收测试(主要是用JavaScript代码编写的单元测试来验证语言特性)
  • 两个通过测试的符合规范的装运实现(shipping implementations)
  • 使用该实现的重要的实践经验
  • ECMAScript标准的编辑必须要签署该标准的文本
  1. 下一步:该提议会被尽可能快的纳入到ECMAScript标准中。当标准通过长达一年的时间获得通过后,该提议将正式作为标准的其一部分

6.





7.





8.





9.





10.





参考资料

英文参考


初心

我所有的文章都只是基于入门,初步的了解;是自己的知识体系梳理,如有错误,道友们一起沟通交流;
如果能帮助到有缘人,非常的荣幸,一切为了部落的崛起;
共勉


相关文章
|
4月前
|
JavaScript 前端开发
JavaScript基础知识-流程控制之while循环
这篇文章介绍了JavaScript中的while循环和do...while循环的基础知识,并通过一个实际案例演示了如何使用while循环计算投资增长到特定金额所需的年数。
67 2
JavaScript基础知识-流程控制之while循环
|
2月前
|
监控 JavaScript 算法
深度剖析 Vue.js 响应式原理:从数据劫持到视图更新的全流程详解
本文深入解析Vue.js的响应式机制,从数据劫持到视图更新的全过程,详细讲解了其实现原理和运作流程。
|
7月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的销售项目流程化管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的销售项目流程化管理系统附带文章源码部署视频讲解等
72 3
|
3月前
|
JavaScript 测试技术 API
跟随通义灵码一步步升级vue2(js)项目到vue3版本
Vue 3 相较于 Vue 2 在性能、特性和开发体验上都有显著提升。本文介绍了如何利用通义灵码逐步将 Vue 2 项目升级到 Vue 3,包括备份项目、了解新特性、选择升级方式、升级依赖、迁移组件和全局 API、调整测试代码等步骤,并提供了注意事项和常见问题的解决方案。
113 4
|
3月前
|
JavaScript 前端开发 索引
JavaScript ES6及后续版本:新增的常用特性与亮点解析
JavaScript ES6及后续版本:新增的常用特性与亮点解析
82 4
|
4月前
vite.config.js中vite.defineConfig is not defined以及创建最新版本的vite项目
本文讨论了在配置Vite项目时遇到的`vite.defineConfig is not defined`错误,这通常是由于缺少必要的导入语句导致的。文章还涉及了如何创建最新版本的Vite项目以及如何处理`configEnv is not defined`的问题。
246 3
vite.config.js中vite.defineConfig is not defined以及创建最新版本的vite项目
|
2月前
|
JavaScript Linux iOS开发
详解如何实现自由切换Node.js版本
不同的项目中需要使用不同版本的 Node.js,有时旧项目需要旧版本,而新项目则可能依赖最新的 Node.js 版本
96 0
|
4月前
|
移动开发 前端开发 JavaScript
JS配合canvas实现贪吃蛇小游戏_升级_丝滑版本_支持PC端和移动端
本文介绍了一个使用JavaScript和HTML5 Canvas API实现的贪吃蛇游戏的升级版本,该版本支持PC端和移动端,提供了丝滑的转向效果,并允许玩家通过键盘或触摸屏控制蛇的移动。代码中包含了详细的注释,解释了游戏逻辑、食物生成、得分机制以及如何响应不同的输入设备。
92 1
JS配合canvas实现贪吃蛇小游戏_升级_丝滑版本_支持PC端和移动端
|
3月前
|
JavaScript 算法 内存技术
如何降低node.js版本(nvm下载安装与使用)
如何降低node.js版本(nvm下载安装与使用)
|
4月前
|
JavaScript 前端开发
JavaScript基础知识-流程控制之for循环
这篇文章讲解了JavaScript中的for循环的基础知识,并通过一个实例演示了如何使用for循环来找出所有的三位水仙花数。
66 6
JavaScript基础知识-流程控制之for循环