|JavaScript| コーディング規約
1. 「==」は使わず「===」を使う
[改善前] var a = 1; var b = "1"; if (a == b) { // 暗黙の型変換が行われるため、通る }
[改善後] var a = 1; var b = "1"; if (a === b) { // 暗黙の型変換が行われないため、通らない }
暗黙の型変換に頼らず、型を合わせるときは明示的に型変換をすること。
2. 変数の宣言には必ず「var」を利用する
[改善前] a = 1;
[改善後] var a = 1;
暗黙の変数定義はグローバル変数となる。グローバル変数は悪と考え、変数の定義は全て「var」を利用すること。(また、strict モードでは改善前のコードは「Uncaught ReferenceError: a is not defined」となり利用できない。)
3. 早期リターン
[改善前] function func(x) { if (x === 1) { // ここに処理 } }
[改善後] function func(x) { if (x !== 1) { return; } // ここに処理 }
インデントが深いと見づらい。ので、特定条件の場合に処理をするのではなく、その反対の条件で早期にリターンし、その後に処理を記述する。
4. 子コンストラクタでは親コンストラクタを呼ぶ、かつprototypeに親を紐付けること
[改善前] function Animal(x) { this.x = x; } function Person(h, w) { this.h = h; this.w = w; } Person.prototype = new Animal(10); // 継承時点で値が必要
[改善後] function Animal(x) { this.x = x; } function Person(x, h, w) { Animal.call(this, x); this.h = h; this.w = w; } Person.prototype = Object.create(Animal.prototype);