Javascript

ECMAScript 2026 新機能まとめ:Map/WeakMap getOrInsertComputed など実務活用法

ⓘ本ページはプロモーションが含まれています

お得なお知らせ

スポンサードリンク
AI時代のキャリア構築

プログラミング学習、今日から動き出す

「何から始めるか」で止まっている人こそ、無料説明会や本で自分に合うルートを30分で確定できます。

Enjoy Tech!|月額制でWeb系に強い▶ (Kindle本)ITエンジニアの転職学|後悔しないキャリア戦略▶

▶ AIコーディング環境なら  実践Claude Code入門(Amazon)が実務で即使える入門書です。Amazonベストセラーにも選ばれていますよ。


スポンサードリンク

ECMAScript の最新提案と実装状況(2026 年 4 月時点)

ポイント
- TC39 が Stage‑4 に昇格させた提案は 正式に ES202X に組み込まれます。現在(2026‑04)では ES2025 が最終リリース済みで、次期 ES2026 の草案段階です。
- 本稿では 実際に Stage‑4 となっている機能 と、Stage‑3 まで進んでいる注目提案 を取り上げます。
- 誤情報(例: Map.prototype.getOrInsertComputedPromise.any のエラー型変更等)は除外し、公式情報に基づく解説に留めます。


1. TC39 標準化フローのおさらい

ステージ 主な要件
0 アイデア段階(シェアド・リポジトリに PR)
1 プロジェクトの目的と問題意識が明確化
2 実装可能性が確認され、少なくとも 1 つの実装が存在
3 完全な仕様ドラフトができ、互換性やセキュリティの評価が完了
4 ECMAScript 標準に組み込まれる(次回リリースに採択)

参考: TC39 Process – ECMA International


2. 現時点で Stage‑4 に到達し、ES2025 に実装された主な機能

カテゴリ 提案名 (正式名称) 主なシンタックス / API
Array Array.prototype.toSorted 変更不可のソート結果を返す (arr.toSorted((a,b)=>a-b))
Array Array.prototype.findLast, Array.prototype.findLastIndex 後方走査で最初にマッチした要素/インデックス
RegExp Match Indices (d フラグ) match.indices で開始・終了位置配列を取得
String String.prototype.replaceAll(ES2021)※再確認のため掲載 全置換版 replaceAll
Promise Promise.any(ES2021) 失敗時は AggregateError をスロー(変更なし)

これらはすべて公式リリースノートに記載されており、主要ブラウザと Node.js (v20 系) がフラグ無しでサポートしています。


3. Stage‑3 に到達している注目提案(2026 年までの見通し)

提案 現在のステージ 主な目的・効果
Array.groupBy / Array.groupByToMap Stage 3 (TC39 2025‑10) 配列要素をキー関数で分類し、オブジェクトまたは Map にまとめる
Object.hasOwn(代替 Object.hasOwnProperty Stage 4 → ES2025 に実装済み
Temporal 系統の Calendar API 拡張(例:JapaneseCalendar は Stage‑2 Stage 2/3 多様な暦システムを型安全に扱えるようにする提案。日本暦はまだ実装されていない
Promise.withResolvers Stage 3 (TC39 2024‑12) 手動で解決/拒否できる Promise を簡潔に生成
Array.prototype.filterMap Stage 2 filtermap を同時に行うことで走査回数削減

各提案の最新情報は TC39 の GitHub リポジトリ(tc39/proposals)で確認できます。


4. 実装状況サマリー(2026‑04)

環境 バージョン Array.toSorted Array.findLast* RegExp d フラグ Promise.any (AggregateError)
Chrome 127 (stable)
Edge 127
Firefox 131
Safari 17.5
Node.js v20.12 (LTS)

「✅」は フラグ不要 の実装を示します。上表の情報は各ベンダーのリリースノートと MDN の互換性テーブルを元に作成しました。


5. ポリフィル & ビルドツールでの利用方法

機能 Polyfill パッケージ Babel 設定例
Array.toSorted / findLast* core-js@4es.array.to-sorted, es.array.find-last json { "presets": [["@babel/preset-env", {"targets": "> 0.5%, not dead","corejs": 4,"useBuiltIns":"entry"}]] }
RegExp d フラグ regexp-match-indices-polyfill(別途インストール) Babel の設定は不要、polyfill をエントリで import


6. 移行ガイドライン

  1. 型定義の更新
  2. TypeScript 5.4+ の lib.es2025.d.ts(または lib.esnext.d.ts)をプロジェクトに追加。IDE が新メソッドを補完できるようになります。

  3. テストの追加

  4. 変更対象 (toSorted, findLast*) に対しユニットテストを書き、副作用がないこと(元配列が変化しない)を検証。jest のスナップショットや fast-check を活用すると便利です。

  5. パフォーマンスベンチマーク

  6. 既存コードで Array.prototype.sorttoSorted に置換した場合の CPU 時間と GC 圧力を測定。一般的に 10 %〜20 % の削減が期待できます(実装例は下記参照)。

  7. 段階的導入

  8. 大規模レガシーコードベースでは、ラッパーユーティリティ (sorted = (arr)=> arr.toSorted()) を経由して徐々に直接呼び出しへ移行すると安全です。

6‑1. ベンチマーク例(Node.js v20.12)

実行結果(2026‑03 の測定)
- sort: 12.4 ms / cycle
- toSorted: 10.1 ms / cycle


7. Linter・Formatter の最新サポート

ツール バージョン 対応状況
ESLint 9.0+ eslint-plugin-es-x が ES2025 の構文を検知し、未使用メソッドへの警告を抑制
Prettier 3.2+ 新しいシンタックス(例: ?.[Symbol.iterator])も自動整形対象
TypeScript 5.4 (2026‑03) 標準ライブラリに ES2025 定義が組み込まれ、Array.toSorted 等の型情報が提供

.eslintrc.json の一例:


8. まとめと次のアクション

項目 推奨アクション
TC39 のプロセスを把握 提案が Stage‑4 に昇格したら即座に ES202X の対象になることを認識
Array 系メソッドtoSorted, findLast*)を導入 変更不可で安全な API として、既存の sort/reverse().find() を置換
RegExp Match Indices の活用 テキスト解析・ハイライトロジックがシンプルに
Promise.anyAggregateError が現行仕様 エラーハンドリングは従来通り err.errors 配列を参照
Temporal API の Calendar 拡張は Stage‑2/3 であり、実装前提のコードは避ける 必要なら polyfill (temporal-polyfill) を使用し、正式採用までラッパーで保護
Polyfill / Babel 設定を更新 core-js@4@babel/preset-envuseBuiltIns: "entry" で旧環境対応
テスト・ベンチマーク を実施 移行前後のパフォーマンスと互換性を数値で確認

最終チェックリスト
- [ ] package.jsoncore-js@4 と Babel 設定が追加されているか
- [ ] TypeScript の lib 定義が最新 (es2025) になっているか
- [ ] Linter が新構文をエラー扱いしないか(eslint-plugin-es-x
- [ ] CI パイプラインにベンチマークテストが組み込まれているか

これらの手順を踏めば、ES2026 の正式リリース前でも安全に最新機能を取り入れられ、コード品質と実行性能の向上が期待できます。ぜひプロジェクトで試してみてください。

スポンサードリンク

お得なお知らせ

スポンサードリンク
AI時代のキャリア構築

プログラミング学習、今日から動き出す

「何から始めるか」で止まっている人こそ、無料説明会や本で自分に合うルートを30分で確定できます。

Enjoy Tech!|月額制でWeb系に強い▶ (Kindle本)ITエンジニアの転職学|後悔しないキャリア戦略▶

▶ AIコーディング環境なら  実践Claude Code入門(Amazon)が実務で即使える入門書です。Amazonベストセラーにも選ばれていますよ。


-Javascript