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 狀態