- ECMAScript 2025が2025年6月25日に正式標準として承認され、さまざまな新機能が追加
- Import attributesとJSONモジュールにより、JavaScript以外のリソースのインポート方法を改善
- Iterator helper methodsにより、大規模データ処理や多様な反復処理の効率が向上
- SetやRegExpなど主要な組み込みオブジェクトに多数の新メソッドが追加され、使い勝手を強化
- 16ビット浮動小数点(float16)のサポートなどにより、データ処理性能と表現力を拡張
ECMAScript 2025の正式承認
- 2025年6月25日、Ecma International第129回総会でECMAScript 2025が正式標準として承認
主な新機能
Import attributesとJSONモジュール
- Import attributesは、JavaScript以外のアーティファクト(インポート対象リソース)に対して、型などの属性を明示できる構文
- JSONモジュールを初めて正式サポートし、
import configData from './data.json' with { type: 'json' }; の形で簡単にJSONデータを読み込み可能
- 動的import(
import()呼び出し)でも同様に属性を指定可能
Iterator helper methods
- Arrayメソッドに似ているが、iteratorに特化したさまざまなヘルパーメソッドを導入
filter, map, flatMap, some, every, find, reduce, forEach など既存に近いメソッド
drop, take, toArray などイテレータ専用の新メソッドを含む
- Set、Mapなどすべてのiterableオブジェクトで直接利用可能
- 中間配列を生成せず、必要な分だけ順次処理するため、大規模データに効果的
Setメソッドの拡張
- 和集合、積集合、差集合、対称差集合(symmetric difference)演算メソッドを追加
Set.prototype.union(other), intersection(other), difference(other), symmetricDifference(other)
- 部分集合/上位集合/互いに素の判定メソッドを提供
isSubsetOf(other), isSupersetOf(other), isDisjointFrom(other)
正規表現の改善
RegExp.escape()
- 任意の文字列を正規表現内で安全に使用できるよう自動でエスケープする
RegExp.escape()を導入
パターン内インラインフラグ(Inline flags)
- 正規表現内の一部パターンにのみ個別フラグ(
i, u など)を適用可能に
- 例:
/^x(?i:HELLO)x$/ はHELLO部分だけを大文字・小文字を区別せずにマッチ
重複名キャプチャグループのサポート
- 正規表現の各代替分岐(branch)ごとに同じ名前のキャプチャグループを使用可能
- 例:
/(?<chars>a+)|(?<chars>b+)/v
Promise.try()
- 同期/非同期コードの混在処理を単一のPromiseチェーンで開始できる
Promise.try()を導入
- これまでは同期例外の処理が煩雑だったが、より簡潔に扱えるようになった
16ビット浮動小数点(float16)のサポート
Math.f16round()で16ビット浮動小数点への丸め処理が可能
- TypedArrayに
Float16Array型を追加
DataViewにgetFloat16(), setFloat16()メソッドを導入
参考資料と無料書籍
1件のコメント
前のプロジェクトで、なぜ
jsonの読み込みができないのか分からなかったんですが、もともとサポートされていなかったんですね……。