JavaScriptパターン 1章〜3章

JavaScriptパターン ―優れたアプリケーションのための作法

JavaScriptパターン ―優れたアプリケーションのための作法

ハイパフォーマンスJavaScriptに続いて今度は本棚で眠っていたJavaScriptパターンを。
初めてのJavaScriptはどうなったんだ、って感じですが新幹線で読むには重かったのですよ。

1章

ECMAScript5
存在すら忘れてたけど、もう普通に使っていい頃合いなの?
JSLint使いましょう
よく忘れてます、よく怒られるし。jslint.vimを入れた方がいいのかな。
コンソール使いましょう
よく使ってます。console.log()も合わせて。

2章

変数宣言には必ずvarを
グローバル変数になってしまったり、いろいろ厄介なので。
単独varパターン
関数の先頭で、関数内で使用する変数をコンマ区切りで全て宣言しておく。最初に全部宣言するところはPascalみたいな。
forループ
lengthをキャッシュしましょう。あとハイパフォーマンスJavaScriptにもあった評価が少なくて済むループの書き方に。
for-inループ
プロパティの列挙をするときにはhasOwnProperty()を忘れずに。
組み込みのプロトタイプを拡張しない
混乱の元になります。するのであれば、先行実装の様な場合やドキュメントに明記してあってちゃんと伝わっている事など。
==,!=よりは===,!==を
暗黙の型変換を避けましょう。
eval
eval is evil.
parseInt()は基数を
parseInt('16', 10)で10進数、parseInt('16', 16)で16進数。
コメントを書く
ごめんなさい、最近書いたやつは自分しか見ないしまったくコメント書いてないです。少しは書いておきます……
ドキュメントの生成
ドキュメント用のコメントは書いてありますけど生成してないです…… YUIDocとかJSDocToolkit使えばいいかな?
JSLint
はいはいJSLintJSLint

3章

んーと、オブジェクトの生成とか配列に関しての章なんだけど、記法についてはハイパフォーマンスJavaScriptの「リテラルの利用」で勧められてた方法とほぼ同じというか。

2章のswitch文に関して

switch (x) {
case 0:
  alert('zero');
  break;
case 1:
  alert('one');
  break;
default:
  alert('other');
}

すごく…インデントが気持ち悪いです…


コードを書くときのことも書いてあるんだけど、それ以外にもJSLintだとかYUIDocだとか、周辺のことについて書かれてることが多い本かも。
JSLintを簡単に実行できるような環境も作ってみるかなー。