JavaScript Primer v6.0.0リリース: ES2024の対応とNode.jsのユースケースを刷新
JavaScript Primer v6.0.0をリリースしました 🎉
JavaScript Primer v6.0.0では、ECMAScript 2024の対応とNode.jsのユースケースを新たに増えたnode:util
のparseArgs
関数やnode:test
を使うように書き直しています。
JavaScript Primer Sponsors
JavaScript Primer(jsprimer)では、Open Collectiveを通じてプロジェクトの更新に関わる資金を募っています。
今回のv6リリースにおいては、次の方々にご支援いただきました!
株式会社コクチョウさんは、Yearly Gold Sponsorとしてご支援いただいています。
ご支援ありがとうございます!
JavaScript Primerスポンサーについては、次のページを参照してください。
また、ご支援いただいた資金は、jsprimerにcontributionしてくれた方へ還元できるような仕組みを設計しました。 次回からは、この仕組みを回していけるようにしたいです。
JavaScript Primer v6.0.0の変更点
JavaScript Primer v6.0.0の変更点について紹介します。
リリースノートは次のページからも確認できます。
更新をメールで受け取りたい方は、次のフォームから登録できます。
フォームが表示されない人は https://github.us13.list-manage.com/subscribe/post?u=fc41e11a2b9dc6f05350e0de0&id=7ab1594ae8 から登録できます。
変更のサマリ
- ErrorCause への対応
- 改訂 2 版の電子版へのリンクを追加
- Map.groupBy 静的メソッドの追加
- Object.groupBy 静的メソッドを追加
- Stage 2.7 を追加
- fix(nodecli): commanderパッケージ を
node:util
のparseArg
に変更 - mocha を node:test に変更する
- update to marked@14
ErrorCauseへの対応 by himanoa · Pull Request #1732
概要
ES2022で追加されたError
のcause
オプションは、エラーのスタックトレースを改善するために追加されました。
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
静的メソッドの説明を追加
関連
- https://github.com/asciidwango/js-primer/pull/1716
- https://github.com/asciidwango/js-primer/pull/1749
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:util
の parseArg
に変更 by azu · Pull Request #1757
概要
commander
パッケージは使わずに、Node.jsの標準モジュールであるnode:util
のparseArg
関数を使うように変更しています。
変更されたページ
変更内容
-
Node.jsでHello World
- “Node.jsプロジェクトのセットアップ “を追加 (
package.json
の作成)
- “Node.jsプロジェクトのセットアップ “を追加 (
-
コマンドライン引数を処理する
-
commander
をnode:util
のparseArgs
関数に変更 -
デフォルト設定を定義する {#declare-default}
セクションは削除(defaultオプションでいいため) -
--gfm
の呼び方をフラグに統一(オプションと呼んでる場所があった)
-
-
MarkdownをHTMLに変換する
-
npm install
の説明を移動 -
[コラム] node: prefix を追加
- 本文は
node:
に統一したので、逆に本文にはいらなくなった
- 本文は
-
関連
mochaをnode:test
に変更する by windchime-yk · Pull Request #1737
概要
テストをMochaから標準モジュールのnode:test
に変更しました
変更されたページ
変更内容
-
Mochaから
node:test
に変更 -
Test runnerでは、デフォルトで
test
フォルダが指定されていることも加味して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してください!
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。