所属 Ecma International 的 TC39 是一个由 JavaScript 开发者、实现者、学者等组成的团体,与 JavaScript 社区合作维护和发展 JavaScript 的标准。

我们是 Ecma International 的一部分。


TC39 欢迎贡献。您可以通过对提案提供反馈、改进文档、编写测试或实现,或提出语言特性的想法来提供帮助。详情请看我们的贡献者指南

要以代表的身份参加 TC39 会议,您需要是 Ecma International 的会员组织的成员(雇员、学者等)。详见:加入 Ecma


我们在 GitHub 上开发 JavaScript(正式名称为 ECMAScript)规范,每两个月开会讨论一次提案。要了解更多关于这个过程的信息,请查看新语言功能提案的五个阶段。请参阅我们的会议议程会议记录,了解更多信息。






Hashbang 语法

作者和推进者: Bradley Farias
该提案意在配合一些允许/需要使用 Hashbang 的 JS 环境。在这种环境中,目前它们需要先删除 hashbang 以生成有效的 JS 代码。该提案将统一和规范这种做法。


作者和推进者: Shu-yu Guo, Tab Atkins

import 断言

作者和推进者: Myles Borins, Sven Sauleau, Dan Clark, Daniel Ehrenberg
该提案为 `import` 语句添加了断言语法。如果模块不符合期望的断言,则导入会失败。

JSON Modules

作者和推进者: Sven Sauleau, Daniel Ehrenberg, Myles Borins, Dan Clark
Proposal to import JSON files as modules.

Ergonomic Brand Checks

作者和推进者: Jordan Harband
EcmaScript proposal to provide brand checks without exceptions.

Class Static Block

作者和推进者: Ron Buckton
Class static blocks provide a mechanism to perform additional static initialization during class definition evaluation. This is not intended as a replacement for public fields, as they provide useful information for static analysis tools and are a valid target for decorators. Rather, this is intended to augment existing use cases and enable new use cases not currently handled by that proposal.

Error Cause

作者: Chengzhong Wu | 推进者: Ron Buckton, Chengzhong Wu, Hemanth HM
Errors will be constructed to represent runtime abnormalities. To help unexpected behavior diagnosis, errors need to be augmented with contextual information like error messages, error instance properties to explain what happened at the time. If the error were thrown from deep internal methods, the thrown error may not be straightforward to be easily conducted without proper exception design pattern. This proposal introduces a convenient way to forward the cause.


作者和推进者: Maggie Pint, Matt Johnson, Philipp Dunkel
Date has been a long-standing pain point in ECMAScript. This proposes Temporal, a global Object that acts as a top-level namespace (like Math), that brings a modern date/time API to the ECMAScript language. For a detailed breakdown of motivations, see the proposal readme.

Accessible Object.prototype.hasOwnProperty()

作者: James Kyle, Tierney Cyren | 推进者 Tierney Cyren
Proposal for an Object.hasOwn() method to make Object.prototype.hasOwnProperty() more accessible.

In-Place Resizable and Growable ArrayBuffers

作者和推进者: Shu-yu Guo
ArrayBuffers have enabled in-memory handling of binary data and have enjoyed great success. This proposal extends the ArrayBuffer constructors to take an additional maximum length that allows in-place growth and shrinking of buffers. Similarly, SharedArrayBuffer is extended to take an additional maximum length that allows in-place growth. The transfer method is also re-introduced here as a standard way to detach ArrayBuffers, perform zero-copy moves, and to "fix" resizable ArrayBuffer instances to ArrayBuffer instances.