${ 自分のための技術ナレッジ }

自分のための技術メモです

|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);