🍃このブログは移転しました。
3秒後、自動的に移動します・・・。

書評:Pro JavaScript Techniques

というわけで、以前もご紹介したPro Javascript Techniquesという本ですが、ひと通り読み終わったので書評という名のメモを。

著者はjQueryのJohn Resigさん。

なによりはじめに

まず最初にですが、この本は2006/12/11に第一版が出た本です。
2006年:6年前という数字がどういう意味を持つか、それを踏まえた上で購入を決めた方がいいかも?と思いました。
Webの世界で6年といえば相当昔の話です。
以下、それを念頭に置いての感想です。

概要

あくまで入門書ではなく、「ある程度JavaScriptを学んだ人が、次のステップに進むために基礎を学び直す」そういうための一冊かなと思いました。

大まかな目次

  • 言語としての特性について
  • DOM/イベントについて
  • Ajaxについて

そういう意味で「新しいこと」が書いてある本ではありません。

言語としての特性

ここについてはあまり濃くないです。

参考:JavaScriptの「参照」について

ここで書いたみたいな「JavaScript独特な基礎的な部分」が載ってます。
復習には良いです。

あとは調べたらすぐ出てくるようなプロトタイプ拡張はこうすべき的な内容がさらっと載ってる感じです。

DOM/イベント

ここはそこそこ濃いです。

JavaScriptを使う理由ってなんでしょう?
ユーザーの動作に対してDOMを操作しリアクション!これぞ優れたUI!という感じ。
とは言えそれをやるにはいろいろと面倒があって。

いまでこそjQuery

var hoge = $('#main').parent().next().text();
console.log(hoge);

とか簡単にできますが、この裏でどれほどの苦労があると思ってんですかー!という内容が、事細かに書かれてます。

var tmp1 = document.getElementById('main').parentNode.nextSibling;
var tmp2 = (tmp1.nodeType == 1) ? tmp1 : tmp1.nextSibling;
var huga = tmp2.innerHTML;
console.log(huga);

だーいぶ端折ってますが、jQueryないとこんなにも大変なのよ・・っていう感じは伝わるはずw

CSSの変更するだけでもStyleってプロパティがそもそもあるとかないとかそういう次元で考えなきゃならないし・・。

そういうライブラリもまだ沢山選べなかった時代に、こういう風にして要素は取得する。
スタイルを変更するにもこうする。
みたいなコードスニペット?が各種散りばめられた内容になっております。

イベントに関しても同様で、IEや初期FFのためにイベントオブジェクトの扱いが・・だったり、イベントで実行する関数に関連して、コールバック関数のうまい使い方やらコンテキストとしてのthisの話とか、裏側の仕組みについての内容です。

個人的には「なんで動くのか」はきちんと知っておきたい派だったのでとても楽しめて読めたんですけど、ぶっ飛んだ解釈をするのであれば、「大人しくjQuery使っとけ」になってしまうんかなぁ。
まぁ確かにサイトにちょっとした動きをつけるだけなら、裏側の仕組みなんて知らなくても良いっちゃ良いしなぁ・・と。

Ajax

これも同じ流れです。
派手なAjaxアプリを作るには・・とかではないです。

  • XMLHttpRequestオブジェクトについて
  • Ajaxで取得するデータの送り方について
  • データの受け方について
  • StatusCodeやTimeoutなど、実装時の勘所について

といった内容です。

今時XMLHRからこねくり回してAjaxを実装する機会なんてそうそうないと思います。
ブックマークレットでちょいっと使うくらい?
それでもエラー対策とかほとんどしない用途だと思うので、本当にないんでしょうね・・。

ただ、それを知ってるのと知らないのでは大きな違いというわけで。

さいごに

これを読めばそこそこのJavaScripterになれるかも?!とか思ってたりもしましたが、プログラミング言語を読書で覚えられるわけがないですね。
やっぱ、生コードを読んで、生コードを書かないと。

とは言えWebの世界でのJavaScriptの役割だったり使われ方、その使い方の起源を知れたという意味では、読んで良かったなぁーという感じです。

テストについての話やデバッグ、パッケージングに関することも書かれてますが、私自身そこらがあまりわかってないので深く書いてません。
ちなみに全編英語ですが、サンプルコードだけ追っても半分くらい読むことになるので、なかなか楽しいとは思いますw