【ES2022】(JavaScript)2022年公開予定機能

ども、カロージです。

2015年以降毎年改定されているJSのECMA規格について2022年公開予定の機能についてです。

finished-proposals.md」ファイルで、Expected Publication Yearが2022年になっている機能を取り上げました。

ES2022に予定されている機能

1. Class Fields
1-1. Private instance methods and accessors

以下の様な感じで、アクセサ(getterやsetter)やメソッドに「#」をつけるとプライベートになります。

1-2. Class Public Instance Fields & Private Instance Fields

プロパティに可視性(パブリック、プライベート)を追加できるようになります。
プロパティに「#」をつけるとプライベートになります。

1-3. Static class fields and private static methods

「static」が使えるようになります。静的なプロパティやメソッドが使えます。

2. RegExp Match Indices

レギュラーエクスプレッションによる正規表現で、マッチした位置情報が追加される。
ただし、/dのオプションが必要とのこと。

3. Top-level await

async / awaitの定義がメソッドの他に、モジュールでも使用可能とのこと。
モジュールの概念が仕様上どうなってるのか気になる。そしてdenoみたい。

4. Ergonomic brand checks for Private Fields

「プライベートフィールドの人間工学的ブランドチェック」うーん。字面だけだとヨクわからない。。

Try/Catch/Exceptionを使用しなくとも、「in」を使用することでプライベートフィールドの有無が分かりようになる。とのこと

5. .at()

Array、String、TypedArrayに、指定位置の値が取得出来るメソッドです。
ただ、Polyfill見た感じ、負の値の扱いが微妙な感じがします。。

6. Accessible Object.prototype.hasOwnProperty

うーん。よくわからなかった。分かり次第、掲載します。

7. Class Static Block

静的ブロックなるものが使用可能になるとのこと。
何かしらの計算値など、初期値として評価結果を静的に保持したい場合、静的ブロックを定義することで使用可能になります。
クラスが読み込まれたタイミングで評価される。とのこと

8. Error Cause

エラーが連鎖したときに、.causeで遡れる様になるとのこと。

まとめ

あれ?今まで無かったの?的な機能も多々ありますが、どれも有用な感じです。

個人的には言語になり切れていない言語(ニュアンスが難しいですが)自由度があって中間的なところが好きでしたが

可視性が追加になったり、スタティックが追加になったりと、すっかりオブジェクト指向な言語になった感があります。

機会があれば今年(2021年)追加となった機能も記事にしてみたいと思います。

 

でわ



❏❏ TOPIC ❏❏ ------------------------------------------------------------

カスタム自由!フリーECサイトパッケージ
チャットボット導入サービス
WEBシステム開発・スマホアプリ開発はSRIAへ