『JavaScriptパターン』読書メモ


単独varパターン:関数の先頭でvar文をひとつにまとめる

  • その関数で必要なすべてのローカル変数が一目でわかる
  • 変数定義前に変数を使用してしまうエラーを予防できる

for文:配列を回すときはキャッシュする

上記for文では、ループの回数分 array.length の計算が行われるため、配列が巨大化すると、パフォーマンスが悪化する。

以下のように、for文の初期化の時点で一度だけ array.length を求め、その値を変数に入れて使うようにすれば、この問題を回避できる。

さらに、比較をせずに0に向けてカウントダウンするというパターンもある。この方法のほうがパフォーマンスが良い。

for-in文:オブジェクトはfor-inで回す

switch文

  • caseの最後はbreakで終わらせる
  • breakを省略して次のcaseに続けるのは避ける
  • switchの最後はdefault:で終わらせる

暗黙の型変換を避ける

値を比較する際は、==ではなく、===を使う。

eval()を避ける

  • “eval() is evil”
  • eval()を使いたい場面では、ほとんどの場合、eval()以外の方法の方が、安全な処理を行うことができる

parseInt()による数値変換時には、基数を設定する

第2引数を省略すると、”0″で始まる文字列は8進数として評価される。
この仕様は、ECMAScript 5では変更されたが、現在のほとんどのJavaScript実装(ECMAScript 3)では、parseInt(“09”)は9ではなく0を返す。

また、parseInt()以外の方法で文字列を数値に変換することもできる。

波括弧は省略しない

2つ目のconsole.logは、for文の外側にある。

セミコロンは省略しない

JavaScriptでは、行末のセミコロンを省略できる場合がある。しかし、セミコロンを省略すると保守性が低下し、思わぬバグの原因となる。

コメントを残す