JavaScript: The Good Parts

JavaScript: The Good Parts

JavaScript: The Good Parts

概要

JavaScriptの第一人者と言えるであろうDouglas Crockfordによって書かれたJavaScriptの解説書。批判されがちなJavaScriptの悪い点を回避しつつ、「優れた点」に目を向けていこうというコンセプトから解説がなされています。

JavaScript is built on some very good ideas and a few very bad ones.

The very good ideas include functions, loose typing, dynamic objects, and an expressive object literal notation. The bad ideas include a programming model based on global variables.


JavaScriptが基づいているアイデアの中には非常に優れたものがいくつかありますし、同時に非常に悪いものもあります。


非常に優れたアイデアとは例えば、ファンクションであり、厳密ではない型付けであり、ダイナミック・オブジェクトであり、オブジェクトの文字列表記手法です。反対に悪いアイデアとしては、グローバル変数に基づくプログラミングモデルが挙げられます。
Chapter 1: Good Parts, Analyzing Javascript, p.3


構成は以下の通りです:


  1. Good Parts:導入
  2. Grammar:JavaScriptの構文の説明
  3. Objects:「キーを持つコレクション」としてのオブジェクトの説明
  4. Functions:JavaScriptにおける基本的な構成単位としてのファンクションの説明
  5. Inheritance:継承を実現させるためのいくつかのパターンの説明
  6. Arrays:配列に関する基礎
  7. Regular Expressions:正規表現に関する基礎
  8. Methods:JavaScriptの標準API
  9. Style:プログラミングにおけるスタイルの重要性について
  10. Beautiful Features:まとめ
  • Appendix A. Awful Parts
  • Appendix B. Bad Parts
  • Appendix C. JSLint
  • Appendix D. Syntax Diagrams
  • Appendix E. JSON



全体的に初頭文法レベルの内容に関しても触れられていますが、4章において説明される「クロージャ」および「モジュール」や5章における継承など、「プログラミングに際してどのようにユニットを構成すれば良いのか」という問題に対する解決法方法が、考え方を含めて丁寧に解説されている点が本書を特徴づけていると言えます。

コメント

プログラミング言語をきちんと習得しようと考える場合に重要なのが、入門書を一通り読んだ後に、その言語の考え方を説明している本を読むことでしょう。これは例えばJavaにおける『Effective Java (Java Series)』をイメージして頂くと良いと思うのですが、そういった本が初級から中級、上級へと至る足がかりとなってくれます。そういう意味ではこの本も、JavaScriptがなんとなく書けるようになった段階で一度目を通しておくべき本だと思います。分かりやすく言えば、以下の二つのコードを見た時に、

/* Sample A */

function add_test(a,b) {
  return a + b;
}
alert(add_test(4,6)); // 10
/* Sample B */

var mammal = function (spec) {
    var that = {};

    that.get_name = function() {
        return spec.name;
    };

    return that;
};

var myMammal = mammal({name: "Herb"});

「サンプルAは問題ないけれども、サンプルBが分からない、でも高度なJavaScriptプログラマがこのテのコードを書くことは知っている」という段階で読むのには、(分量的にも)非常に適した本であり、考え方を含めてきちんと理解することができます。


ただし、「この本を読んだら美しいJavaScriptコードを書くために必要な知識がすべて身につけられるか」と言えば、もちろんそんなことはありません。クライアントサイドプログラミングを難しくしている理由として著者自身が挙げている、「ブラウザのAPI」や「DOM」に関してはここでは触れられないため、実際にJavaSciptによるクライアントサイドプログラミングきちんと習得しようと思うならば、これらの内容を記述した専門書を少なくともあと数冊は読む必要があると言えるでしょう。

関連リンク