齊藤新三 : これから学ぶ JavaScript

作成日 : 2023-04-10
最終更新日 :

概要

「はじめに」から引用する。全くのプログラミング初心者が、 プログラミングとは何か、もっと言うなら、JavaScript が活躍する Web の世界というのはどういった仕掛けで動いているのかを理解できるよう、 その説明から始め、JavaScript プログラミングの土台となる力を養えるようにサポートすることを心掛けました。

感想

月ごとの季節を表示するプログラムで、「5つの季節」としていたのは私の感性に近い。 北海道を除く日本では、春夏秋冬のほかに「梅雨」という季節があるからだ。

粗探し

以下の記載はただの粗探しである。

英単語の読み方

p.430 の「null と undefined」というコラムの末尾は、次の段落で締めくくられている。

ところで、この null の発音ですが、英単語としては「ナル」です。 日本のプログラマはこれをローマ字読みして「ヌル」と発音する人が非常に多いです。 ぜひ正しい発音で読むようにしてください。

私もつい「ヌル」と発音してしまう。反省している。ところで、p.094 では、JavaScript では文字列型の変数に小数を入れても問題ないことをうけて、 登場人物の一人がこう言っている。

ここよ、ここ。JavaScript がルーズというか、いいかげんなところ。

ルーズは loose のことだと思うが、この英単語は「ルース」と読み、「ルーズ」とは読まない。 あるいは、いいかげんを意味する別の単語なのだろうか。

乱数

pp.130-131 では乱数について解説されている。以下、長くなるが引用する。

(前略)まず、Math.random() で 0 ~ 1 の乱数が発生します。それを
Math.random() * 100
で 100 倍することで、0 ~ 100 の乱数が発生することになります。ただし、これは小数です。 それを整数に変換するために、
Math.round()
で四捨五入しています。現段階では、この
Math.round() * 100
が 0 ~ 100 の乱数を発生させる方法だと思ってください。(後略)

まず、 0 ~ 1 の乱数が発生します。というところがあいまいだ。 正確には、「0 以上 1 未満の乱数が発生します。」というべきだろう。MDN の Math.random() (https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/random) には、そう書かれている。次の 100 倍のところは、0 以上 100 未満の乱数が発生することになる、 と言い直せば正しい。そして、0 以上 100 未満の乱数を Math.round() で四捨五入するとどうなるか。 確かに 0 ~ 100 までの乱数は得られるが、0 以上 100 以下の一様な乱数ではなくなる。 もう少し言葉を足せば、1 以上 99 以下の数字が得られる確率は 1/100 だが、 数字 0 が得られる確率は 1/200 となり、また数字 100 が得られる確率も 1/200 となる。これが一様ではない、という意味だ。では、0 以上 100 未満の一様な乱数を得るにはどうしたらいいか、 というと、上記 Math.random() のページに、 「包括的に 2 つの値の間のランダムな整数を得る」という項があるので参照するといいだろう。

なお、本書のサポートページにある「お詫びと訂正」 https://book.impress.co.jp/books/1117101136#box-errata の欄のうち、 かなりの数が乱数がらみの訂正部分である。ただし、私が上述したことは考慮されていない。

数値かどうかの判断

Chapter 13 は「アプリを作ろう」という章で、BMI の計算を題材にとっていろいろな手法を紹介している。 そのなかで、p.483 で数値かどうかのチェックは Number オブジェクトの isFinite() メソッドを使います。 と書いている。実際のコードが pp.479-481 に記載されているので見てみた。 該当の個所は p.480 の上から 3 行目と同じく p.480 の下から 11 行目にある。 ふむ、しかしこれでは Number オブジェクトの isFinite() ではなくビルトイン関数のほうの isFinite() ではないだろうか。Number オブジェクトの isFinite ならば、 isFinite(height) とは書かずに Number.isFinite(height) と書くはずだ。 p.484 では、COLUMN でリスト 13-8 では 2-2 で事前に数値に変換していますので、Number メソッドの方を利用しています。 とあるのだが、私の見方が悪いのだろうか。

書誌情報

書名 これから学ぶ JavaScript
著者 齊藤新三
発行日 2018 年 7 月 21 日 初版
発行元 インプレス
定価 2400 円(本体)
サイズ A5 判 494 ページ
ISBN 978-4-295-00409-7
その他 越谷市立図書館で借りて読む

まりんきょ学問所コンピュータについてコンピュータの本JavaScript, altJS > 齊藤新三:これから学ぶ JavaScript


MARUYAMA Satosi