JavaScript 2024 新特性
JavaScript 2024 新特性
| 功能 | 描述 | |
|---|---|---|
| Object groupBy() |
根据回调函数返回的值对对象元素进行分组 | |
| Map groupBy() |
根据回调函数返回的值对元素进行分组 | |
| String isWellFormed() |
如果字符串格式正确,则返回 true | |
| String toWellFormed() |
返回一个新字符串,其中"单独的代理项"被替换为 Unicode U+FFFD | |
| Promise withResolvers() |
||
| Atomics waitAsync |
警告
这些功能相对较新。
旧版浏览器可能需要替代代码(Polyfill)。
JavaScript Object.groupBy()
示例
// 创建一个数组
const fruits = [
{name:"apples", quantity:300},
{name:"bananas", quantity:500},
{name:"oranges", quantity:200},
{name:"kiwi", quantity:150}
];
// 向分组元素返回回调函数
function myCallback({ quantity }) {
return quantity > 200 ? "ok" : "low";
}
// 按数量分组
const result = Object.groupBy(fruits, myCallback);
亲自试一试 »描述
Object.groupBy() 方法根据回调函数返回的字符串值对对象的元素进行分组。
Object.groupBy() 方法返回一个新对象。
Object.groupBy() 方法不会更改原始对象。
注意:
原始对象和返回对象中的元素相同。
未来的更改将同时反映在原始对象和返回对象中。
JavaScript Map.groupBy()
示例
// 创建映射
const fruits = [
{name:"apples", quantity:300},
{name:"bananas", quantity:500},
{name:"oranges", quantity:200},
{name:"kiwi", quantity:150}
];
// 向分组元素返回回调函数
function myCallback({ quantity }) {
return quantity > 200 ? "ok" : "low";
}
// 按数量分组
const result = Map.groupBy(fruits, myCallback);
亲自试一试 »描述
Map.groupBy() 方法根据回调函数返回的字符串值对映射中的元素进行分组。
Map.groupBy() 方法返回一个新的映射。
Map.groupBy() 方法不会更改原始对象。
注意:
原始对象和返回对象中的元素相同。
未来的更改将同时反映在原始对象和返回对象中。
Object.groupBy() 与 Map.groupBy()
Object.groupBy() 和 Map.groupBy() 的区别在于:
Object.groupBy() 将元素分组到一个 JavaScript 对象中。
Map.groupBy() 将元素分组到一个 Map 对象中。
JavaScript 字符串 isWellFormed()
isWellFormed() 方法返回 true,表示字符串格式正确。
否则返回 false。
如果字符串包含单独的代理项,则该字符串格式不正确。
示例
let text = "Hello world!";
let result = text.isWellFormed();亲自试一试 »
let text = "Hello World \uD800";
let result = text.isWellFormed();亲自试一试 »孤立代理码
孤立代理码是指不属于用于表示 UTF-16 编码字符的有效代理码对的 Unicode 代理码位。
JavaScript 字符串 toWellFormed()
字符串方法 toWellFormed() 返回一个新字符串,其中所有"孤立代理字符"都被替换为 Unicode 替换字符 (U+FFFD)。
