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 まで。