ES15 (ES2024)新特性

文章类型:Javascript

发布者:hp

发布时间:2025-03-12

一:属性

1. ‌原生数组分组方法‌

新增 Object.groupBy() 和 Map.groupBy() 方法,实现数组元素的快速分组,替代传统 Lodash 库的依赖 ‌‌

const fruits = [
  { name: 'apple', color: 'red' },
  { name: 'banana', color: 'yellow' }
];
const grouped = Object.groupBy(fruits, fruit => fruit.color);
// 输出: { 'red': [ { name: 'apple', ... } ], 'yellow': [ { name: 'banana', ... } ] }

2. ‌Promise 构造增强‌

Promise.withResolvers() 直接返回 Promise 实例及其关联的 resolve 和 reject 方法,简化异步逻辑控制 ‌‌

const { promise, resolve, reject } = Promise.withResolvers();
setTimeout(() => resolve('成功'), 1000);
promise.then(console.log); // 输出: "成功" 

3. ‌日期时间处理(Temporal API)‌

引入 Temporal 对象,提供更精确的日期时间操作(如时区转换、日历计算),替代传统 Date 对象的局限性 ‌‌

const date = Temporal.PlainDate.from({ year: 2025, month: 2, day: 26 });
console.log(date.toString()); // 输出: "2025-02-26" 

4. ‌正则表达式改进‌

支持更复杂的具名组匹配和模式修饰符(如 /v 标志),提升正则表达式的可读性和灵活性 ‌‌

const regex = /(?<year>\d{4})-(?<month>\d{2})/v;
const match = regex.exec('2025-02');
console.log(match.groups.year); // 输出: "2025" 

二:总结

1:优先采用‌:Object.groupBy() 替代 Lodash 以精简依

‌2:性能优化‌:Temporal API 处理跨时区场景更高效

‌3:慎用场景‌:Promise.withResolvers() 需注意内存泄漏风险