Replies: 25 comments 46 replies
-
早速読んでいて気になる点があり、issueにするべきか判断できなかったのでこちらに記載します。 Objectの静的メソッドについて「Objectの静的メソッド」について記述がありますが、ES2022で https://jsprimer.net/basic/object/#static-method https://github.com/asciidwango/js-primer/releases/tag/v4.0.0 |
Beta Was this translation helpful? Give feedback.
-
https://jsprimer.net/basic/variables/#const-is-not-constant を読んでいて気になった点について記載します。 ここでは const で宣言したオブジェクトに関して、「オブジェクトという値そのもの」あるいは「オブジェクトそのもの」は変更できると述べられています。ただ、JavaScript の純粋な初学者がここまでの文章を頭から読んだと仮定すると、オブジェクトという概念についてはまだ説明されていないため、「オブジェクトそのもの」というのが何を指しているかイメージしづらいのではないかと思いました。詳細は後述すると述べられてはいるものの、ふわっとした理解だけでも得られるように、簡単にオブジェクトが key-value ペアの集まりであることなどについて触れてもいいかも?と思いました。 |
Beta Was this translation helpful? Give feedback.
-
TypeScriptの記載について、 付録: 参考リンク集内での取り扱いのみなのは、 2023年の段階では、TypeScriptがデファクトスタンダードなっている印象を受けます。 TypeScriptとJavaScriptとの関係性を付録:参考リンク集のトランスパイラーの一部だけにとどめておくのは、「TypeScriptに入門したけど、そもそもJavaScriptがわからないから入門したい」層にリーチするためには、別章にしてもいいかもしれないな、と感じました。 |
Beta Was this translation helpful? Give feedback.
-
[ES2015] for...of文内にgeneratorへの言及についての記載が一部存在します。
ほかの章でgeneratorへの言及がない、かつ、過去のMTGで言及しないことも検討していることからご質問させていただきました。 |
Beta Was this translation helpful? Give feedback.
-
2023/02/02 時点での内容になりますが、 https://github.com/nodejs/node/releases/tag/v18.13.0 Lines 24 to 25 in 251c2e0 厳密に追従しても際限がないとは思いますが、パッチバージョンの違いであることと、出版前提のレビューということで挙げさせていただきました。 |
Beta Was this translation helpful? Give feedback.
-
演算子 の章についてhttps://jsprimer.net/basic/operator/#bit-not 1: ビット否定演算子の説明とindexOfの関連性について下記の箇所で ビット否定演算子がビット演算以外でも使われることがあるという説明でindexOfの事例が取り上げられていますが、初心者の方だとindexOfがどうビット否定演算子を使っているのかを読み解くのが難しいように感じました。
という説明の後に、
の所になります。 指定した文字が文字列の中から見つからない場合は、内部でインデックスの値が0となり 、 ~0 = -1 と評価されるみたいな説明が追記されると理解の助けになると感じました 2: 否定演算子のところで書かれている 1の補数について
ビット演算子で2の補数表現についての説明がありましたが、1の補数表現について詳細でなくとも軽く説明があると良いと感じました。 |
Beta Was this translation helpful? Give feedback.
-
値の評価と表示についてhttps://qiita.com/masakura/items/5683e8e3e655bfda6756 デバッグという用語の説明順序(箇所)について「Console API」の項で以下のようにデバッグという用語が使われ、
このプリントデバッグという用語には特に説明がないのですが、少し読み進めて、
厳密にはプリントデバッグとデバッグで区別されていると思われるのですが、
あたりを検討しても良いのかなと思いました。 |
Beta Was this translation helpful? Give feedback.
-
https://jsprimer.net/basic/function-declaration/#rest-parameters の Rest parameters の記述について思ったことを以下に書きます。 まず、Rest parameters に対応する引数が与えられなかった場合の説明を追加するといいのではないかと思いました。たとえば、 function fn(arg1, ...restArgs) {
console.log(arg1); // => "a"
console.log(restArgs); // => ["b", "c"]
}
fn("a", "b", "c"); というプログラムの例が書かれていますが、ここで また、Rest parameters を複数定義できない(たとえば |
Beta Was this translation helpful? Give feedback.
-
https://jsprimer.net/basic/ 配列の説明についてですが、
にて、破壊的なメソッドという書き方をされているので、非破壊的なメソッドという書き方のほうが統一感が出て良いのではと思いましたが、如何でしょうか。 次に、関数とスコープの説明についてですが、
にて、かやの部分に少し違和感を感じたので、
または、
という書き方は如何でしょうか。 |
Beta Was this translation helpful? Give feedback.
-
typo なのか判断しかねたためこちらで質問します。 「文と式」の中の https://jsprimer.net/basic/statement-expression/#function-statement-and-function-expression において、節のタイトルが「function宣言(文)とfunction式」となっています。このこと自体は問題ないのですが、この節の中では一度も「function宣言(文)」や「function式」という言葉は登場せず、代わりに「関数宣言(文)」や「関数式」という言葉が使われています。他の節ではこのようなタイトルと説明文での用語の使い分けはされていないようなため、統一性の観点から、どちらかというと文章中で使われている「関数宣言(文)と関数式」のようにタイトルを変更してもいいのではないかと思ったのですが、いかがでしょうか?(問題なければ PR を作成します) |
Beta Was this translation helpful? Give feedback.
-
「プロトタイプオブジェクト」の章 https://jsprimer.net/basic/prototype-object/ 冒頭に
という記述がありますが、実際には「オブジェクト」の章で空のオブジェクトに対して |
Beta Was this translation helpful? Give feedback.
-
配列部分のMapに関して、改めて読み返しました。 2点、気になったことあったため私の意見になりますが、記載させていただきます。
以上2点、かなり主観が入っていますが、ご一考していただければ幸いです。 |
Beta Was this translation helpful? Give feedback.
-
第一部 「暗黙的な型変換」 の 「NaNはNot a NumberだけどNumber型」 の解説に |
Beta Was this translation helpful? Give feedback.
-
文と式の文の項でvarを使ったサンプルコードがあるのですが、何か意図があるのでしょうか? var forIsNotExpression = if (true) { /* ifは文であるため式にはなれない */ } 代入演算子の右辺で例外が発生するので、何かまずいというわけでもないのですが、JS Primer では varよりもlet やconst を使うというスタンスだと解釈しているため const で良いのではないか?と思った次第です。 |
Beta Was this translation helpful? Give feedback.
-
どこまで網羅的に記述するのかという話にはなってくるのですが、
function addPrefix(text, prefix = "デフォルト:") {
return prefix + text;
}
// falsyな値を渡してもデフォルト値は代入されない
console.log(addPrefix("文字列")); // => "デフォルト:文字列"
console.log(addPrefix("文字列", "")); // => "文字列"
console.log(addPrefix("文字列", "カスタム:")); // => "カスタム:文字列" とありますが、デフォルト引数に明示的に 引数を渡さない = |
Beta Was this translation helpful? Give feedback.
-
私自身が不慣れなことに基づくご提案なのですが、付録のチートシート に falsy な値の一覧があると嬉しいなと思いました。 一度覚えてしまえば不要なのだと思いますが…。 |
Beta Was this translation helpful? Give feedback.
-
0除算の結果についてこちらも演算子について気になった点を書きます 除算する際、 Javascriptにおいては0で除算すると 0除算エラーでなく、無限大を表す Infinityについての記述上記の0除算の結果とからむところですが、Infinityについては下記の項目で軽く記述がありますが、詳細な説明は不要でしょうか。 https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Infinity |
Beta Was this translation helpful? Give feedback.
-
「非同期処理」の章の https://jsprimer.net/basic/async/#promise-then-and-catch の冒頭パラグラフに
という表現が出てくるのですが、この「エイリアス」という表現が適切なのかという疑問を少しもちました。 「エイリアス」というと、同じ実体を指す別名という感じのニュアンスの語だと思うのですが、そのような前提でこの箇所を読むと
のように誤読される可能性を孕んでいると思います。よって、エイリアスという語を別の語に置き換えたほうがいいのではないかと思ったのですが、いかがでしょうか? |
Beta Was this translation helpful? Give feedback.
-
上と同様「非同期処理」の章の https://jsprimer.net/basic/async/#top-level-await-in-module を読んでいて感じた些細な点について質問なのですが、ここでは Module や Script という語がダブルクオーテーションに囲まれて何度も "Module" などと表現されていますが、これには意図があるのでしょうか?自分が読んでいた限りでは、" を外してそのまま Module などと書いてしまっていいのではないかと思いました。また、https://jsprimer.net/basic/introduction/#script-module でも同様の書き方がされており、同様に外してしまってもいいのではないかと思いました。 |
Beta Was this translation helpful? Give feedback.
-
[ES2015] ECMAScriptモジュールhttps://jsprimer.net/basic/module/
こちら受け取り方によっては1ファイル中に1つのみしかエクスポートできないように感じてしまったのですがいかがでしょうか? また「名前つきエクスポート/インポート」について、どちらが良いということはないと思いますが、その旨を一行書いてあると別言語から来た方にとっては良いかなと思いました。 両方蛇足的ではあるかもしれません |
Beta Was this translation helpful? Give feedback.
-
非同期処理:Promise/Async Functionhttps://jsprimer.net/basic/async/#sync-processing 拙い図で申し訳ないのですが、下記のようにタスクBと非同期タスクの間に隙間があると良いかなと思いました。 |
Beta Was this translation helpful? Give feedback.
-
オブジェクトの[ES2020] Optional chaining演算子(?.)
という説明があるのでundefinedやnullを <変更前の引用> // undefinedやnullはnullishなので、`undefined`を返す
console.log(undefined?.notFound?.notFound); // => undefined
console.log(null?.notFound?.notFound); // => undefined <提案> // ↓ 各文最後の?.を.のチェーンに変更しています
console.log(undefined?.notFound.notFound); // => undefined
console.log(null?.notFound.notFound); // => undefined |
Beta Was this translation helpful? Give feedback.
-
という説明がありサンプルコードが以下のようになっています。 const array = ["A", "B", "C"];
console.log(array.flat()); // => ["A", "B", "C"] このサンプルコードの場合、新しい配列を返している様子が分かりにくいので以下のようなコードサンプルにするのはどうでしょうか <提案> const array = ["A", "B", "C"];
const newArray = array.flat()); // => ["A", "B", "C"]
console.log(array === newArray); // => false |
Beta Was this translation helpful? Give feedback.
-
横からですが
|
Beta Was this translation helpful? Give feedback.
-
jsprimerの書籍の方も校了し、あとは発売日(2023/6/9)を待つだけになりました。 https://github.com/js-primer/review/discussions/1 |
Beta Was this translation helpful? Give feedback.
-
第二版のレビュー用のDiscussionです。
Issue/PRにするべきか判断できないものなどを書いて大丈夫です。
Beta Was this translation helpful? Give feedback.
All reactions