JavaScript Primer v6.0.0をリリースしました 🎉

JavaScript Primer v6.0.0では、ECMAScript 2024の対応とNode.jsのユースケースを新たに増えたnode:utilparseArgs関数やnode:testを使うように書き直しています。

JavaScript Primer Sponsors

JavaScript Primer(jsprimer)では、Open Collectiveを通じてプロジェクトの更新に関わる資金を募っています。

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

JavaScript Primerスポンサー

株式会社コクチョウさんは、Yearly Gold Sponsorとしてご支援いただいています。

ご支援ありがとうございます!

JavaScript Primerスポンサーについては、次のページを参照してください。

また、ご支援いただいた資金は、jsprimerにcontributionしてくれた方へ還元できるような仕組みを設計しました。 次回からは、この仕組みを回していけるようにしたいです。

JavaScript Primer v6.0.0の変更点

JavaScript Primer v6.0.0の変更点について紹介します。

リリースノートは次のページからも確認できます。

更新をメールで受け取りたい方は、次のフォームから登録できます。

JavaScript Primerの更新情報を購読

* indicates required

フォームが表示されない人は https://github.us13.list-manage.com/subscribe/post?u=fc41e11a2b9dc6f05350e0de0&id=7ab1594ae8 から登録できます。

変更のサマリ

ErrorCauseへの対応 by himanoa · Pull Request #1732

概要

ES2022で追加されたErrorcauseオプションは、エラーのスタックトレースを改善するために追加されました。 causeオプションを使うことで、エラーを再度投げ直す場合に、元のエラーのスタックトレースを維持しながら新しいエラーを投げることができます。

変更されたページ

変更内容

  • ErrorCauseオブジェクトの説明を追加
  • ウェブ版のREPLをErrorCauseに対応

改訂2版の電子版へのリンクを追加 by azu · Pull Request #1755

電子版の改訂2版が公開されたので、リンクを追加しました。

Map.groupBy静的メソッドの追加 by azu · Pull Request #1751

概要

ES2024では、配列の要素をグループ分けしたマップを作成するMap.groupBy静的メソッドが追加されています。

Map.groupBy静的メソッドはObject.groupBy静的メソッドとよく似たメソッドです。 Object.groupBy静的メソッドは配列からオブジェクトを作成するのに対して、Map.groupBy静的メソッドは配列からマップを作成します。

Map.groupBy静的メソッドも元々は、Array.prototype.groupToMapメソッドという配列のメソッドとして提案されていましたが、Object.groupBy静的メソッドに合わせる形でMap.groupBy静的メソッドに変更されました。

変更されたページ

変更内容

  • Map.groupBy静的メソッドの説明を追加

関連

Object.groupBy 静的メソッドを追加 by azu · Pull Request #1749

概要

ES2024では、配列の要素をグループ分けしたオブジェクトを作成するObject.groupBy静的メソッドが追加されています。 配列の要素をグループ化を簡潔に書けるようになっています。

Array.prototype.groupByのようなArrayのメソッドではないのは、既存のprototype拡張をしていたライブラリとの競合を避けるためです。 最初は、Array.prototype.groupByメソッドとして提案されていましたが、既存のウェブサイトとの互換性の問題が見つかったため、Object.groupBy静的メソッドに変更されました。

変更されたページ

変更内容

  • Object.groupBy静的メソッドの説明を追加

関連

Stage 2.7を追加 by azu · Pull Request #1743

概要

ECMAScript ProposalのStage 2.7を追加しました

ブラウザが実装しはじめて見つかる問題などによりステージ2と3を行き来してしまうことがあったためです。 そのため、実装の前のテストと検証のためのステージとして2.7が追加されました。

変更されたページ

関連

Node.js CLIのアップデート

Node.jsの標準パッケージがカバーする範囲が広がったため、Node.jsのユースケースを大幅に書き換えました。

commanderパッケージ を node:utilparseArg に変更 by azu · Pull Request #1757

概要

commanderパッケージは使わずに、Node.jsの標準モジュールであるnode:utilparseArg関数を使うように変更しています。

変更されたページ

変更内容

  • Node.jsでHello World
    • “Node.jsプロジェクトのセットアップ “を追加 (package.jsonの作成)
  • コマンドライン引数を処理する
    • commandernode:utilparseArgs関数に変更
    • デフォルト設定を定義する {#declare-default}セクションは削除(defaultオプションでいいため)
    • --gfmの呼び方をフラグに統一(オプションと呼んでる場所があった)
  • MarkdownをHTMLに変換する
    • npm install の説明を移動
    • [コラム] node: prefix を追加
      • 本文は node: に統一したので、逆に本文にはいらなくなった

関連

mochaをnode:testに変更する by windchime-yk · Pull Request #1737

概要

テストをMochaから標準モジュールのnode:testに変更しました

変更されたページ

変更内容

update to marked@14 by azu · Pull Request #1760

概要

markedパッケージを14にアップデートしました。

変更されたページ

変更内容

  • marked@4からmarked@14にアップデート
  • <h1 id=xxx> は付与されなくなったので出力から削除
    • auto linkについては言及してるが、idについては言及してないのでコードのみの変

おわりに

jsprimerでは毎年更新していけるような仕組み作りの一貫としてJavaScript Primer - Open Collectiveでの支援を募集しはじめました。サイト上へのロゴの掲載やリリースノートへのロゴの掲載などの特典を含んでいます。

また、文章の修正やコード的なコミットはいつでも歓迎しています!

大体毎年の1月ぐらいには、次のECMAScriptのリリースに合わせた計画を立て始めています。 この時期になると次のリリースに向けてのIssueが立ち始めるので、興味がある人はリポジトリをWatchしてください!