Angular.jsのソースコードを読んでわかったJavaScriptの実践的テクニック8つ 第1回

勉強のためにAngular.js(v1.0.1)のソースコードを読み始めました。フレームワークの仕組みを把握するために読み始めたのですが、「おぉそんなことがあるのか!」と新しい事実の発見があったり、「やはりこの書き方は推奨されるんだな。。。」とベストプラクティスの有効性を再認識したりなど、JavaScriptの実践的な知識を学ぶのに役立っているので、備忘録として記録していきます。
対象は、JavaScriptでアプリをごりごり書いたり、ライブラリを作ったりしている”それなりにJS開発の経験がある人”です。

まず第1回目は1〜1719行目までです。

  1. 'use strict'; とJavaScriptの先頭に書くことでJSエンジンによる厳密な文法チェックを有効にする
  2. String.toLowerCase(), String.toUpperCase()にはトルコ語環境において不具合があるので、そういう環境を考慮するときは独自実装する
  3. ユニークIDには数値だけではなく文字列を含める(長くなりにくく、オーバーフローによるパフォーマンス低下が無い)
  4. 変数が配列かをチェックするにはObject.prototype.toString().apply(value) == '[object Array]';を使う
  5. シンプルなif文の代わりに三項演算子を積極的に使う(条件が長いor複雑な場合はは逆効果なので使わない)
  6. ライブラリ全体を(function(){...})()の即時関数の形にしてグローバルスコープを汚染しないようにする
  7. よく使う正規表現は定数として宣言しておく(毎回コンパイルされなくなるためパフォーマンスが上がる)
  8. if( a == null || a == undefined ){ var b = "-"; } else { var b = a; } の代わりに var b = a || "-" と書く