主要观点总结
本文介绍了ECMAScript 2024语言规范中新增的提案,包括字符串格式良好性检查、异步原子等待、RegExp v标志与字符串属性、ArrayBuffer转移、数组分组和Promise.withResolvers等。
关键观点总结
关键观点1: 提案1:Well-Formed Unicode Strings
引入String.prototype.isWellFormed()方法验证字符串是否格式良好,还提供String.prototype.toWellFormed()辅助方法替换孤立的代理对。
关键观点2: 提案2:Asynchronous atomic wait for ECMAScript Workers
实现了一种异步方式等待工作线程,可以在主线程上进行,使用Atomics.waitAsync()方法。
关键观点3: 提案3:RegExp v flag with set notation + properties of strings
新的RegExp v标志允许检查Unicode字符串属性,执行减法/交集/并集匹配。
关键观点4: 提案4:ArrayBuffer transfer
引入transfer()和transferToFixedLength()方法调整ArrayBuffer的大小,以及detached getter判断缓冲区是否已被释放。
关键观点5: 提案5:Array grouping
实现了数组的groupBy方法,作为Object.groupBy或Map.groupBy的静态方法。
关键观点6: 提案6:Promise.withResolvers
添加了延迟Promise的功能,用于避免在Promise的执行函数中嵌套过多代码,尤其当需要传递resolve或reject方法给多个调用者时。
文章预览
大家好,我是 ssh 。 ECMAScript 2024 (https://tc39.es/ecma262/2024/) 语言规范的最终版本于 6 月 26 日获得批准。今天带大家一起来看一下这个版本新增了哪些走进标准的提案。 提案1:Well-Formed Unicode Strings JavaScript 中的字符串由一系列 UTF-16 编码点表示。名称中的 16 表示可用于存储编码点的位数,提供了 65536 个可能的组合(216)。这个数量足以存储拉丁、希腊、斯拉夫和东亚文字的字符,但不足以存储中文、日文和韩文表意文字或表情符号等内容。额外的字符以 16 位代码单元的形式存储,称为代理对( surrogate pairs )。 'a' .length // 1 'a' .split( '' ) // [ 'a' ] '🥑' .length // 2 '🥑' .split( '' ) //[ '\ud83e', '\udd51' ] 👈 surrogate pair 在 UTF-16 编码中,前导和尾随代理对的范围是为了避免对单个代码单元字符进行编码的歧义。如果一个代理对缺少前导或尾
………………………………