山田祥寛 : 改訂新版 JavaScript 本格入門

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

概要

副題は「モダンスタイルによる基礎から現場での応用まで」

感想

本書 2.2 節「変数/定数」では var 命令と let 命令について述べられている。 本書の p.45 では ECMAScript 2015 (ES 2015)で導入された let 命令が従来の var 命令より優れている点を解説していている。問題はその後だ。以下引用する。

以上の性質から、ES 2015 を利用できる環境では、できるだけ let 命令を優先して利用することをお勧めします。

ただし、本書では従来の環境との互換性を優先して、ES2015 対応のコードを除いては、var 命令でコードを書いていくものとします。

本書出版時点ではこのような方針は仕方なかったのかもしれない。ただ、モダンスタイルを前面に出しているのなら、 var は駆逐するぐらいの筆致がほしかった。もっとも本書は改訂 3 版が 2023年2月13日 に発刊しているので、いまさら私が昔の本に対していうこともないだろう。

テスティングフレームワーク

本書の第 8 章は「現場で避けて通れない応用知識」である。 最新の改訂 3 版ではこのタイトルは第 11 章になっている。 改訂 3 版ともなると記述内容が拡大しているのがわかる。さて、本書 8.1 節ではテスティングフレームワークである Jasmine について解説されている。今なら何を使うのだろうか。最新の改訂 3 版をみると Jest が解説されているようだ。やはり十年も経つといろいろとフレームワークが変わるものだ。 私がある本で JavaScript のテスティングフレームワークを見かけておもしろそうだと思ったことがある。 そこで私が試そうとしたのだが、そのテスティングフレームワークは影も形もなくなっていて結局実行できなかった。 Jasmine でも Jest でもいいが、長続きしてほしいと思っている。 現在 Jasmine もコードが更新されているが、Web 上の記事は古いものが多いようだ。

ドキュメンテーションコメント

ドキュメンテーションコメントとは、本書 p.430 によれば、 クラスやそのメンバーの直前でその役割を記述するための、特定のルールに則ったコメントのこと。 とある。本書では JSDoc が取り上げられていて、これは改訂 3 版でも同じようだ。

コーディング規約

本書 8.5 節ではコーディング規約について述べられている。本書では、以下の URL は、読みやすさの観点から、 日本語版(非公式を含む)があるものはそちらを優先して掲載しています。正確を気する場合には、英語の原文も併読してください。 とある。引用にあたってそのまま書き写すのでは著者に申し訳ないので、日本語訳のある/なしに関わらず、 英語の原文のリンクを掲げた。

本書に取り上げられた規約のうち、こんなものがある。
真偽値を true / false と比較しないこと
これはどういうことか。該当する英語原文はこうなっている。

Shortcuts for boolean tests

Prefer shortcuts for boolean tests. For example, use if (x) and if (!x), not if (x === true) and if (x === false), unless different kinds of truthy or falsy values are handled differently.

問題は unless 以下の文だ。これは、日本語訳には書かれていない。私が理解するところでは、 《もしいちいち比較すると truthy な値や falsy な値に対して、それぞれ違う扱いをしないといけないからだ》 ということだ。JavaScript でいう falsy な値とは、https://developer.mozilla.org/ja/docs/Glossary/Falsy にあるとおり、 null, undefined, false, NaN, 0, -0, 0n, "", document.all であり、truthy な値とはこれら以外の値すべてである。 まあ、確かにそうだ。他の Web ページにある「冗長だ」という理由とは、少し違うような気がする。

書誌情報

書名 改訂新版 JavaScript 本格入門
著者 山田祥寛
発行日 2016 年 11 月 1 日 初版 第 1 刷
発行元 技術評論社
定価 2980 円(本体)
サイズ A5 判変形 ページ
ISBN 978-4-7741-8411-1
その他 草加市立図書館で借りて読む

まりんきょ学問所コンピュータについてコンピュータの本JavaScript, altJS > 山田祥寛:改訂新版 JavaScript 本格入門


MARUYAMA Satosi