ES2025の新機能まとめ|知っておきたい構文

プログラミング言語

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 HelpersSet Methodsが特に実務インパクトが大きい更新です。データ加工や集合演算が標準APIだけで完結するようになり、外部ライブラリ依存を減らせます。最新の言語仕様を活用して、よりシンプルで読みやすいコードを書きましょう。