作为前端你应该知道的TC39会议

关于ECMA TC39

https://github.com/tc39/agendas/blob/main/2024/12.md

这是一个ECMA TC39的会议纪要。ECMA TC39 的全称是 ECMA Technical Committee 39,即 ECMA国际技术委员会39。它是 ECMA国际组织 的一个技术委员会,负责 ECMAScript 标准的制定和维护,也就是我们熟知的 JavaScript 语言的标准化工作。

ECMA TC39(ECMA技术委员会39)诞生于 1996年,其起源可以追溯到 JavaScript 语言的开发和标准化过程。

TC39会议通常每年召开6次,大约每两个月一次。会议一般持续3到4天,旨在讨论和推进JavaScript语言的发展及相关提案的进展。

TC39成员包括浏览器厂商(如谷歌、微软、Mozilla)、技术公司(如Meta、Netflix)、社区项目(如Babel、TypeScript)、学术机构等代表。也可能包含特定领域的外部专家。

会议的主要主要议程:

  • 提案的讨论与表决(如进入下一个阶段)。
  • JavaScript规范问题的修订。
  • 浏览器引擎、工具链的反馈及开发进展。
  • 语言特性使用数据分析和社区讨论。

每个变更都会经历多个阶段,具体如下:

    1. Stage 0: Strawman
      提出初步想法,供委员会讨论。
    1. Stage 1: Proposal
      明确问题和解决方案,进入正式提案。
    1. Stage 2: Draft
      设计初步稳定,提供规范草案。
    1. Stage 3: Candidate
      规范完成,收集实现反馈。
    1. Stage 4: Finished
      提案最终定稿,纳入标准。

这就是提案从构想到标准的完整流程!提案从 Stage 0 到 Stage 4 完成整个流程的时间不固定,通常需要 1到3年,甚至更长。

从下面的介绍,我们还会看到stage2.7,它并不是 TC39 官方标准提案流程中的一个正式阶段,但通常用于内部讨论或作为阶段性标记,帮助开发者和参与者了解提案的进展。

例如,某个提案在 Stage 2 阶段时,可能会经历多个版本的草案(例如 2.0、2.1、2.7 等),每个小版本表示细节上的逐步完善,直到准备好进入 Stage 3。

除此之外ECMA也有其他会议,如ECMAScript Working Groups(工作组会议)、Annual ECMAScript Summit(年度 ECMAScript 峰会)、ECMAScript 版本发布会议。

第105届TC39会议

本次是第105届TC39会议,具体的更新内容如下:

阶段 4

Intl.DurationFormat

提供了一种以区域设置敏感的方式格式化持续时间(例如,“1小时,30分钟”)的方法。

new Intl.DurationFormat("fr-FR", { style: "long" }).format({
    hours: 1,
    minutes: 46,
    seconds: 40,
});
// => "1 heure, 46 minutes et 40 secondes"

阶段 3

Error.isError

添加了一个静态的isError方法,用于检查给定的值是否是Error对象的实例。

Error.isError(undefined); // false
Error.isError(new Error()); // true

阶段 2.7

ESM Phase Imports

增强了ECMAScript模块(ESM)系统,引入了新的导入能力,以简化模块间依赖声明。

import source myModule from "./my-module.js";
// `{ type: 'module' }` 可以推断,因为myModule是一个模块对象
const worker = new Worker(myModule);

P.S: 注意这是有条件的批准。

阶段 2

Immutable ArrayBuffer

引入了不可变的ArrayBuffer概念,以防止在创建后对二进制数据进行更改。

Object.freeze(new Uint8Array(buf.transferToImmutable()));

Intl Currency Display Choices

扩展了显示货币值的选项,例如添加对货币符号和代码样式的控制。

const formal = new Intl.NumberFormat("en-US", {
  style: "currency",
  currency: "USD",
  currencyDisplay: "formalSymbol",
});
formal.format(42); // "US$42.00"

const never = new Intl.NumberFormat("en-US", {
  style: "currency",
  currency: "USD",
  currencyDisplay: "never",
});
never.format(42); // "42.00"

阶段 1

Import Sync

为ES模块提供了一个明确的同步导入函数,建立在Defer Import Eval提案定义的同步执行行为之上。

let react;
try {
  react = import.sync('react');
} catch {}
if (react) {
  // 如果可用,绑定到React框架
}

本文由mdnice多平台发布

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容