※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

  • このサイトは Google JavaScript Style Guide(Revision 2.93) を私的に日本語訳したものです。
  • この翻訳の内容について、翻訳者は一切の責任を負いません。ご利用は自己責任でお願いします。
  • 以下のコーディングルールは、最終的にコードをClosure Compilerにかけて完成させることが暗黙の前提となっている点に注意してください。Closure CompilerはGoogle自身が提供しているJavaScript圧縮・最適化ツールです。(こちらの日本語の解説も参考にしてみてください。)
  • JavaScriptコードがこのスタイルガイドに適合しているかどうかを検証する、Clisure LinterというツールがGoogleから提供されています。使い方はこちらを参照してください。


2.93 版

Aaron Whyte
Bob Jervis
Dan Pupius
Erik Arvidsson
Fritz Schneider
Robby Walker

目次

はじめに

JavaScriptはGoogleの多くのオープンソースプロジェクトで、主要なクライアントサイドのスクリプト言語として使用されています。このスタイルガイドはJavaScriptプログラムのための すべきこと すべきでないこと のリストです。

JavaScriptの言語仕様に関するルール

var

常に、varと共に変数を宣言します。

定数

  • 定数値にはNAMES_LIKE_THISのような名前をつけます。
  • 変数やプロパティの参照先が固定されている(上書きできない)ことを示すには@constを使います。
  • Internet Explorerがサポートしないconst キーワードは決して使いません。

セミコロン

常にセミコロンを使います。

ネストされた関数

使えます。

ブロック内での関数宣言

使わないでください。

例外

使えます。

独自の例外

使えます。

標準機能

標準機能は非標準の機能よりも常に優先されます。

プリミティブ型のラッパーオブジェクト

使わないでください。

多段階のプロトタイプ階層

好ましくありません。

メソッドとプロパティの定義

/** @constructor */ function SomeConstructor() { this.someProperty = 1; } Foo.prototype.someMethod = function() { ... };

delete

より好ましいのは this.foo = null の方です。

クロージャ

使えます、しかし慎重に。

eval()

コードローダまたはREPL(Read-eval-print loop)にのみ使います。

with(){}

使わないでください。

this

オブジェクトのコンストラクタとメソッド、クロージャの作成時にのみ使います。

for-in ループ

オブジェクト / マップ / ハッシュ内をキーによって走査する場合のみ使えます。

連想配列

決して Array をマップ / ハッシュ / 連想配列として使わないでください。

複数行の文字列リテラル

使わないでください。

配列リテラルとオブジェクトリテラル

使えます。

組込みオブジェクトのプロトタイプの書き換え

しないでください。

Internet Explorerの条件付きコメント

使わないでください。

JavaScriptのスタイルに関するルール

命名規則

原則として、関数はfunctionNamesLikeThis、変数はvariableNamesLikeThis、クラスはClassNamesLikeThis、列挙型はEnumNamesLikeThis、メソッドはmethodNamesLikeThis、定数はCONSTANT_VALUES_LIKE_THIS、名前空間はfoo.namespaceNamesLikeThis.bar、ファイルはfilenameslikethis.jsのように、それぞれ命名してください。

独自のtoString()メソッド

副作用なしで常に成功すること。

変数初期化の遅延

OK。

明示的なスコープ

常にそうしてください。

コードのフォーマット

詳しい情報を見るにはリンクをクリックしてください。

丸括弧

必要なときだけ使います。

文字列

"より'を使います。

可視性(privateまたはprotectedなフィールド)

JSDocアノテーションの@private@protectedの利用を推奨します。

JavaScriptのデータ型

Compilerによる型の強制を推奨します。

コメント

JSDocを使ってください。

goog.provideによる依存関係の規定

トップレベルのシンボルだけを規定します。

コンパイル

必須です。

ヒントとテクニック

JavaScriptについてもう少しだけ。

最後に

一貫性を持たせてください。

コードを編集するとき、少しの間周辺のコードを眺めてからスタイルを決めるようにしてください。それらが全ての計算記号の前後にスペースを入れているのであれば、あなたもそうすべきです。もしコメントが#マークで四角く囲まれているなら、あなたもコメントを#マークで囲んでください。

スタイルガイドラインの意義は、人々がコーディングに関する共通の語彙を持つことにあります。そうすれば、どう話すかより何を話すかに集中できるようになります。我々が示したのは共通語彙としての全体的なスタイルルールですが、ローカルルールもまた同じように重要です。もしあなたがファイルに追加したコードが既存のコードとかけ離れていたら、他の人はコードを読むリズムを狂わされてしまいます。そうならないようにしてください。