ES2024 新特性完整介紹

JavaScript 2025-01-01T09:00:00.000Z

ES2024 新特性完整介紹

ECMAScript 2024 正式定案,帶來多項讓開發者日常生活更便利的新特性。

Array.prototype.groupBy

const products = [
  { name: 'iPhone', category: 'electronics' },
  { name: 'Shirt', category: 'clothing' },
  { name: 'MacBook', category: 'electronics' },
];
const grouped = products.groupBy(p => p.category);
console.log(grouped.get('electronics'));

Promise.withResolvers

const { promise, resolve, reject } = Promise.withResolvers();
setTimeout(() => resolve('done'), 1000);
await promise; // 'done'

Object.groupBy

const people = [{ name: 'Alice', age: 25 }, { name: 'Bob', age: 35 }];
const byDecade = Object.groupBy(people, p => Math.floor(p.age / 10) * 10);

正則表達式 v flag

const regex = /[a-z]/v;
regex.test('A'); // false

v flag 支援 Unicode 屬性,比 u flag 更強大且避免了一些意外行為。

ArrayBuffer.prototype.transfer

const buffer = new ArrayBuffer(1024);
const transferred = buffer.transfer();
// buffer 現在是 detached 狀態