- インデントはホワイトスペース2個。
- ハードタブは使用しない。
- 1行の文字数は80文字以下にする。
- 行末には空白を含めない。
- カンマの直前にはスペースを挿入しない。
- 演算子の前後、カンマの後ろにホワイトスペースを1個置く。
- ()の内側にスペースを挿入しない。
- 変数は必ず
var
を付けて宣言する。
理由
var
を付けないと、その変数はグローバル変数として扱われ、既に定義されている変数を上書きする危険性もある。また、もし宣言をしなければ、その変数のスコープがどの位広いのかが非常に分かりづらい。
- 定数は
NAME_LIKE_THIS
のような名前にする。 - オーバーライドできない変数や属性を指定するために
@const
アノテーションを使う。 - Internet Explorer がサポートしていない
const
キーワードは使ってはいけない。
変数を定数、または変更不可にする場合、CONSTANT_VALUE_CASE.ALL_CAPS
のような名前にし、@const
(値が上書き不可能であるという)アノテーションを使う。
プリミティブ値(number
、string
、boolean
)は定数値である。
Object
が不変であるかどうかは、厳密に定義されていない。第三者が見て、状態変化が分からないのであれば、不変と言えるが、コンパイラーがこれを定義しているわけではない。
行末には必ず付ける。
してもよい。
してはいけない。
してもよい。
してもよい。
標準の機能で要件を満たせるのであれば、それを使う。
利用してはいけない。
なるべく利用しない。
/** @constructor */
function SomeConstructor() { this.someProperty = 1; }
Foo.prototype.someMethod = function() { ... };
null
を代入する。
this.foo = null
利用しても良いが、慎重に検討する。
デシリアライズする時のみ利用可。
使ってはいけない。
コンストラクター、メソッド、クロージャーの作成時にのみ利用して良い。
object / map / hash のキーを用いたイテレーションにのみ利用可能。
配列を object / map / 連想配列として利用してはいけない。
使ってはいけない。
しても良い。
禁止。
使用禁止。
Javascriptの関数内で DOM を新規に構築してはいけない。HTML 内に予め display:none
等にして DOM を構築しておき、それをコピーする等する。
してもよい。
常にする。
このようにする。 (これから書く)
必要とされるところのみに利用する。
使えるのであれば"
ではなく'
を使う。
JSDoc アノテーション(@private
と @protected
)を使って記述する。
コンパイラーで定義されるものを利用する。
JSDocで記載する
トップレベルでのみ利用する
利用する
(あとで書く)