ES2024のリリース候補
ES2024に追加される新機能が決まった。
ArrayBuffer関連
- ArrayBuffer#resize
- ArrayBuffer#transfer
- ArrayBufferのメモリ管理まわりの機能
正規表現 vフラグ
- https://github.com/tc39/proposal-regexp-v-flag
- 既存のuフラグ(unicode)の改善&機能追加したフラグ
- 複数のコードポイントからなるEmojiの対応や集合演算をサポート
Promise#withResolvers
// Before: resolve/rejectを取り出す
let resolve, reject;
const promise = new Promise((res, rej) => {
resolve = res;
reject = rej;
});
// After
const {promise, resolve, reject} = Promise.withResolvers();
Object#groupBy、Array#groupBy
- https://github.com/tc39/proposal-array-grouping
- Array#reduce でがんばっていたオブジェクトや配列のグルーピングがやりやすくなった
const nums = [1, 2, 3, 4, 5];
// Before
const reduce = nums.reduce((ret, num) => {
if (num % 2 === 0) {
ret.even.push(num);
} else {
ret.odd.push(num);
}
return ret;
}, { odd: [], even: []})
// After
const groupBy = Object.groupBy(nums, (num, _index) => {
return num % 2 === 0 ? 'even': 'odd';
});
Atomics#waitAsync
String#isWellFormed、String#toWellFormed
- https://github.com/tc39/proposal-is-usv-string
- 文字列がUSVStringか判定するisWellFormedと、それに変換するtoWellFormed
- 使い所がわからない