Skip to content

v7.0.0: ECMAScript 2025サポート、イテレータとジェネレータ

Latest

Choose a tag to compare

@azu azu released this 18 Aug 02:32
· 4 commits to master since this release
6c1a17c

JavaScript Primer v7.0.0リリース 🎉
v7では、ECMAScript 2025の対応と、イテレータ・ジェネレータの章を新規追加しました。

主な変更点

イテレータとジェネレータ [ES2025]

イテレータとジェネレータについて解説する新しい章を追加しました。
ES2025で追加されたIterator Helpersも含めて、JavaScriptにおけるイテレータとジェネレータについて解説しています。

// Iterator.fromを使った例
const iterator = Iterator.from([1, 2, 3])
  .map(x => x * 2)
  .filter(x => x > 2);

for (const value of iterator) {
  console.log(value); // 4, 6
}

関連章: イテレータとジェネレータ(新規追加)

RegExp.escape メソッド [ES2025]

正規表現で特殊な意味を持つ文字を安全にエスケープするメソッドが追加されました。
文字列の中に正規表現として意味を持つ特殊文字が含まれていても、自動的にエスケープできます。

const escaped = RegExp.escape("+");
console.log(escaped); // \+

関連章: 文字列

Set Methods [ES2025]

Setオブジェクトに集合演算を行うメソッドが追加されました。
数学的な集合操作を簡潔に記述できるようになります。

const setA = new Set([1, 2, 3]);
const setB = new Set([2, 3, 4]);

// 積集合
setA.intersection(setB); // Set { 2, 3 }
// 和集合
setA.union(setB); // Set { 1, 2, 3, 4 }
// 差集合
setA.difference(setB); // Set { 1 }

関連章: Map/Set

Import Attributes [ES2025]

JavaScript以外のファイル(JSON等)をモジュールとして読み込む構文が標準化されました。

// Import Attributes
import data from "./data.json" with { type: "json" };

関連章: ECMAScriptモジュール

Dynamic Import [ES2020]

Import Attributesの対応に合わせて、Dynamic Importの解説を追加しました。
動的にモジュールを読み込む機能の解説を追加しました。

// Dynamic Import
const module = await import("./module.js");

関連章: ECMAScriptモジュール

Array.prototype.flatMap メソッド [ES2019]

Iterator.prototype.flatMapメソッドに合わせて、配列のflatMapメソッドも解説を追加しました。
配列のmapとflatを組み合わせた処理を効率的に行えるメソッドです。

const nested = [[1], [2, 3], [4]];
const result = nested.flatMap(x => x.map(n => n * 2));
// [2, 4, 6, 8]

関連章: 配列

JavaScript Primerへの支援

今回のv7リリースにおいては、次の方々にご支援いただきました!

Gold Sponsors

jsprimer sponsors

Supporters

jsprimer backers

JavaScript Primerは、Open Collectiveを通じてプロジェクトの更新に関わる資金を募っています。
継続的な更新のために、ぜひご支援をお願いします。

詳細は、JavaScript Primerスポンサーを参照してください。

また、jsprimerへのOpen Collectiveを通じて、Contributorに対して支払い または 好きな別のオープンソースプロジェクトへ寄付を行う仕組みを作っています。
詳細は、Contributing Expenses Policyを参照してください。

関連Issue/PR

ES2025新機能の対応

  1. RegExp.escape [ES2025] (#1784) by @azu

    • PR: #1837
    • 正規表現パターンで使う特殊文字をエスケープするメソッド
  2. Import Attributes [ES2025] (#1783) by @lef237

    • JavaScript以外のファイル(JSON等)をモジュールとして読み込む構文
  3. Set Methods [ES2025] (#1784) by @3w36zj6

    • PR: #1804
    • Setの集合演算メソッドの追加(intersection, union, difference等)
  4. Iterator Helpers & イテレータとジェネレータの章 [ES2025] (#1782) by @azu

    • PR: #1825
    • イテレータとジェネレータの章を新規追加

その他の対応機能

ES2025以前に追加された機能ですが、ES2025で関連する内容を追加しました。

  1. Dynamic Import [ES2020] (#1792) by @3w36zj6

    • Import Attributesと合わせて、動的インポートの解説を追加
  2. Array.prototype.flatMap [ES2019] by @azu

    • PR: #1836
    • 配列の章にflatMapメソッドの解説を追加