ECMAScript 2025が正式標準として承認
(2ality.com)- 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()メソッドを導入
参考資料と無料書籍
- 無料オンライン書籍 “Exploring JavaScript (ES2025 Edition)” を提供
- JavaScriptの歴史と発展、新しいECMAScript機能などを詳しく解説
- 主な新機能ごとに実際の使用例と説明を提供
1件のコメント
前のプロジェクトで、なぜ
jsonの読み込みができないのか分からなかったんですが、もともとサポートされていなかったんですね……。