🌄

ES2024に入る予定の機能を眺めてみた

2024/01/01に公開

あけましておめでとうございます。

2024年なのでES2024に入る予定の機能を眺めてみました。

記事作成の時点でStage 4になっているものを対象にしています。

ES2024に入る予定の機能

Well-Formed Unicode Strings

https://github.com/tc39/proposal-is-usv-string

文字列のサロゲートペアの検証をする関数と、サロゲートをREPLACEMENT CHARACTERに置換する関数。

いつか使うかも。

Atomics.waitAsync

https://github.com/tc39/proposal-atomics-wait-async

Atomics.waitのAsync版、Atomics.waitを使う機会がないのでよくわからない。

RegExp v flag with set notation + properties of strings

https://github.com/tc39/proposal-regexp-v-flag

正規表現にvフラグを追加して、色々と機能を増やすやつ。

Resizable and growable ArrayBuffers

https://github.com/tc39/proposal-resizablearraybuffer

ArrayBufferのバッファを増やしたいときに新しいバッファを作ってコピーするのは非効率なので、リサイズ可能にするというやつ。

ArrayBuffer使わないのでよくわからない。

Array Grouping

https://github.com/tc39/proposal-array-grouping

Arrayをグループ分けする関数。

const array = [1, 2, 3, 4, 5];
Object.groupBy(array, (num, index) => {
  return num % 2 === 0 ? 'even': 'odd';
});
// =>  { odd: [1, 3, 5], even: [2, 4] }

これはたまに欲しくなるやつ。

Promise.withResolvers

https://github.com/tc39/proposal-promise-with-resolvers

promiseと一緒にresolveとrejectを返す関数。

const { promise, resolve, reject } = Promise.withResolvers();

使う場面がパッと思いつかないけど、いつか使いたい場面がありそう。

感想

Array Groupingは割とすぐ使いたい場面がありそう。

正規表現もvフラグで色々できることが増えることを覚えていればよさそう。

他のやつは頭の片隅に置いておいて、必要になったら思い出す感じで。

Discussion