ECMAScript(JavaScriptの言語仕様)は毎年アップデートされ、新しい構文や機能が追加されます。ES2025でも実用的な機能が多数導入されました。本記事では、ES2025の主要な新機能を整理します。
1. Iterator Helpers
イテレータに対してmap filter takeなどのメソッドが標準サポートされ、ジェネレータと組み合わせて効率良いデータ操作が書けるようになりました。
function* naturals() {
let n = 1;
while (true) yield n++;
}
const evens10 = naturals()
.filter((n) => n % 2 === 0)
.take(10)
.toArray();
// [2, 4, 6, ..., 20]
2. Set Methods(集合演算)
const a = new Set([1, 2, 3]);
const b = new Set([2, 3, 4]);
a.union(b); // {1, 2, 3, 4}
a.intersection(b); // {2, 3}
a.difference(b); // {1}
a.symmetricDifference(b); // {1, 4}
a.isSubsetOf(b); // false
a.isDisjointFrom(b); // false
3. Promise.try
同期/非同期どちらの関数でも例外を統一的にPromiseとして扱えるようになりました。
Promise.try(() => mayThrow())
.then(handle)
.catch(handleError);
4. RegExp.escape
正規表現を作る際の特殊文字エスケープが標準で提供されました。
const userInput = 'a.b*c';
const re = new RegExp(RegExp.escape(userInput));
// /a\.b\*c/
5. JSON.parse with source
JSONパース時の各値の「元の文字列表現」にアクセスでき、BigInt安全に文字列で扱うなどの用途で有用です。
6. JSON Modules
import config from './config.json' with { type: 'json' };
ESMでJSONを安全にインポートできるようになり、Node.jsやモダンブラウザで利用可能です。
7. import.deferやasync importなどの段階的進化
動的import周りも継続的に強化されており、起動時の負荷を抑えるパターンが書きやすくなりました。
導入時の注意点
- ブラウザ・Node.jsのバージョン対応状況を確認
- TypeScriptは
lib設定を最新ESに合わせる - 古環境ターゲットならBabel/SWCでトランスパイル
まとめ
ES2025はIterator HelpersとSet Methodsが特に実務インパクトが大きい更新です。データ加工や集合演算が標準APIだけで完結するようになり、外部ライブラリ依存を減らせます。最新の言語仕様を活用して、よりシンプルで読みやすいコードを書きましょう。