主要观点总结
本文介绍了ECMAScript 2024语言规范的新增内容,包括Well-Formed Unicode Strings、Asynchronous atomic wait for ECMAScript Workers、RegExp v flag with set notation + properties of strings、ArrayBuffer transfer、Array grouping和Promise.withResolvers等提案的细节和地址。
关键观点总结
关键观点1: Well-Formed Unicode Strings提案
引入String.prototype.isWellFormed()方法验证字符串是否格式良好,还提供String.prototype.toWellFormed()辅助方法替换孤立的代理对。
关键观点2: Asynchronous atomic wait for ECMAScript Workers提案
提供一种异步方式实现工作线程的原子等待,可以在主线程上使用。
关键观点3: RegExp v flag with set notation + properties of strings提案
新增RegExp v标志,用于对一组Unicode字符串属性进行检查,执行减法/交集/并集匹配,改善不区分大小写的匹配。
关键观点4: ArrayBuffer transfer提案
引入transfer()和transferToFixedLength()等方法方便地调整ArrayBuffer的大小,还提供detached getter方法检查已释放的缓冲区。
关键观点5: Array grouping提案
将Lodash、Ramda等工具库广泛使用的groupBy方法纳入ECMAScript,作为Object.groupBy/Map.groupBy的静态方法实现。
关键观点6: Promise.withResolvers提案
为语言添加延迟Promise的功能,避免在Promise的执行函数中嵌套过多代码,尤其当需要传递resolve或reject方法给多个调用者时。
文章预览
大家好,我是 ConardLi 。 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 编码中,前导和尾随代理对的范围是为了避免对单个代码单元字符进行编码的歧义。如果一个代理对缺少前导
………………………………