ECMAScript提案需经TC39五阶段流程,仅阶段4特性可生产使用;开发者应通过GitHub、MDN等跟踪进展,优先采用已标准化功能,配合Babel等工具确保兼容性。

JavaScript的演进由ECMAScript标准驱动,新特性的引入遵循一套公开、严谨的提案流程。浏览器厂商、开发者和TC39委员会共同推动语言发展。了解这一流程,有助于理解哪些特性可以使用、何时可用,以及为何某些语法尚未落地。
ECMAScript提案的五个阶段
TC39(ECMAS Cair Group 39)是负责JavaScript语言标准化的委员会,所有新特性必须经过其五阶段流程:
- 阶段0:孵化(Strawman) - 提出初步想法,任何成员都可提交,尚不稳定。
- 阶段1:提案(Proposal) - 明确问题与解决方案,指定负责人,初步设计语法和语义。
- 阶段2:草案(Draft) - 形成正式规范文本,语法基本确定,具备参考实现。
- 阶段3:候选(Candidate) - 规范冻结,仅接受反馈修正,主流引擎开始实现。
- 阶段4:完成(Finished) - 已通过测试,纳入下一版ES标准,如ES2024。
只有达到阶段4的特性,才能视为“已标准化”,推荐在生产环境使用。
如何查看提案状态与浏览器支持
开发者可通过以下方式掌握最新动态:
立即学习“Java免费学习笔记(深入)”;
- 访问TC39官方GitHub仓库,查看各提案所处阶段。
- 查阅ECMAScript compatibility tables(如MDN或caniuse),确认Chrome、Firefox、Safari等对特性的支持程度。
- 使用Babel等转译工具时,注意插件是否支持阶段3以下的实验性语法(如transform-class-properties)。
例如,装饰器(Decorators)长期停留在阶段2,直到2023年才进入阶段3,新版实现与早期差异较大,直接使用风险高。
主流引擎如何实现新特性
V8(Chrome)、JavaScriptCore(Safari)、SpiderMonkey(Firefox)等引擎按自身节奏实现阶段3+的特性:
- 通常先在实验模式下提供(需开启flag,如--harmony)。
- 随着规范稳定,逐步默认启用。
- 引擎会同步更新test262测试套件,确保行为一致。
比如Promise.withResolvers()在2024年进入阶段3,V8已在Chrome 121中实验性支持,但默认关闭。
开发者应如何应对新特性
合理利用新功能,同时保持项目稳定性:
- 优先使用阶段4特性,配合Babel + preset-env自动降级。
- 避免在生产代码中使用阶段2以下的语法,除非明确控制运行环境。
- 关注年度ES发布(每年6月),如ES2024新增Array.prototype.findLast等实用方法。
借助工具链和文档,既能体验语言进步,又能规避兼容性问题。
基本上就这些。理解提案流程,能帮你判断一个酷炫的新语法到底能不能用。不复杂,但容易忽略。









