JavaScript > コーディングスタイル

更新日 2012-07-21
広告

Googleが公開しているJava Scriptのコーディングガイド(Google JavaScript Style Guide)を簡単にまとめます。

  • セミコロンは、ちゃんとつける。予期せぬエラーを避けるため。
  • 変数の宣言時には var をつける。グローバル変数化を避けるため。
  • 定数の名前は、大文字とアンダーバーで構成する。constキーワードはIEが理解できないので使わない。
  • 配列の定義
        var a = new Array(a, b, c); // これはダメ
        var a = [a, b, c];  // これは良い
    
  • オブジェクトの定義
        var o = new Object(); // これはダメ
        var o = {}; // これは良い。
    
  • メソッドの定義は、以下のようにする。
      Foo.prototype.bar = function() { ... };
    
  • 一行でリテラル表記する場合は、スペースを入れない。
    var arr = [1, 2, 3];  // No space after [ or before ].
    var obj = {a: 1, b: 2, c: 3};  // No space after { or before }.
    
  • 文字列はダブルクォーテーション(")よりも、シングルクォーテーション(')で定義したほうがよい。HTMLを記述する際にわかりやすい。
  • バックスラッシュによる複数行の文字列定義は行わない。複数行になる場合は、以下のように定義する。
    var myString = 'A rather long string of English text, an error message ' +
        'actually that just keeps going and going -- an error ';
    
  • 名前空間を使い、変数名の衝突を回避する。
    var sloth = {}; // 何でもよいので、名前空間用のオブジェクトを宣言
    
    sloth.sleep = function() { // 名前空間オブジェクトに、メソッドを宣言
      ...
    };
    
  • 名前空間が長くなると、可読性が落ちるが、以下のように、最初に変数に代入してやると読みやすくなる。
    some.long.namespace.MyClass = function() {
    };
    
    some.long.namespace.MyClass.staticHelper = function(a) {
      ...
    };
    
    myapp.main = function() {
      var MyClass = some.long.namespace.MyClass; // 変数に代入
      var staticHelper = some.long.namespace.MyClass.staticHelper; // 変数に代入
      staticHelper(new MyClass());
    };
    
  • プリミティブ型のラッパーオブジェクトは使わないほうがよい。例えば、以下のif文は'偽'になりそうだが、ならない。
    var x = new Boolean(false);
    if (x) {
      alert('hi');  // Shows 'hi'.
    }
    
  • ネストされた関数は便利なので使ってよい。
  • 例外は使おう。
  • eval()は、RPCレスポンスの評価のような deserialization のみに利用する。
  • withは使わない。
  • thisは、オブジェクトのコンストラクタ内か、オブジェクトのメソッド内のみで利用する。
  • for-in ループは prototype chainをたどってしまうので、普通の for ループを使う。
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system