JavaScriptのベストプラクティス
グローバル変数を避ける、new
を避ける、 ==
を避ける、 eval()
を避ける。
グローバル変数を避ける
グローバル変数の使用を最小限に抑えます。
これには、すべてのデータ型、オブジェクト、および関数が含まれます。
グローバル変数と関数は、他のスクリプトで上書きできます。
代わりにローカル変数を使用し、クロージャの使用方法を学習してください .
常にローカル変数を宣言する
関数で使用されるすべての変数はローカル変数として宣言する必要があります。
ローカル変数はvar
、let
、 またはconst
キーワードを使用して宣言する必要があります。宣言しないとグローバル変数になります。
strictモードでは、宣言されていない変数は許可されません。
上部の宣言
すべての宣言を各スクリプトまたは関数の先頭に置くことは、適切なコーディング方法です。
これを心がけましょう:
- よりクリーンなコードを与える
- ローカル変数を探す単一の場所を提供する
- 不要な (暗黙の) グローバル変数を回避しやすくする
- 不要な再申告の可能性を減らす
これはループ変数にも当てはまります。
変数の初期化
変数を宣言するときに変数を初期化することは、コーディングの良い習慣となります。
これを心がけましょう:
- よりクリーンなコードを与える
- 変数を初期化する単一の場所を提供する
- 未定義の値を避ける
変数を初期化すると、使用目的(および使用目的のデータ型)がわかります。
constでオブジェクトを宣言する
constを使用してオブジェクトを宣言すると、型が誤って変更されるのを防ぐことができます。
例
constを使用して配列を宣言する
constを使用して配列を宣言すると、型が誤って変更されるのを防ぐことができます。
例
new Object() を使用しないでください
new String()
の代わりに""
を使用します。new Number()
の代わりに0
を使用します。new Boolean()
の代わりにfalse
を使用します。new Object()
の代わりに{}
を使用します。new Array()
の代わりに[]
を使用します。new RegExp()
の代わりに/()/
使用します。new Function()
の代わりにfunction (){}
使用します。
例
自動型変換に注意
JavaScriptは緩く型付けされています。
変数には、すべてのデータ型を含めることができます。
変数はそのデータ型を変更できます。
数値が誤って文字列またはNaN
(非数値)に変換される可能性があることに注意してください。
数学演算を行う場合、JavaScriptは数値を文字列に変換できます。
例
文字列から文字列を減算すると、エラーは発生しませんが、NaN
(非数値)が返されます。
=== 比較を使用
比較演算子==
は、比較前に常に(一致する型に)変換します。
演算子===
は値と型の比較を強制します。
例
パラメータのデフォルトを使用
欠落した引数で関数が呼び出された場合、欠落している引数の値はundefined
で設定されます。
未定義の値を使用するとコードが壊れる可能性があります。引数にデフォルト値を割り当てるのは良い習慣です。
ECMAScript 2015関数定義でデフォルトのパラメーターを許可します。
関数のパラメーターと引数の詳細については、次を参照してください。関数パラメータ
スイッチをデフォルトで終了する
switch
ステートメントの最後には常にdefault
をつけること。必要ないと思っても。
例
数値、文字列、およびブール値をオブジェクトとして避ける
数値、文字列、またはブール値を常にプリミティブ値として扱います。オブジェクトとしてではありません。
これらの型をオブジェクトとして宣言すると、実行速度が遅くなり、厄介な副作用が発生します。
例
さらに悪いことに:
例
eval()の使用を避ける
このeval()
関数は、テキストをコードとして実行するために使用されます。ほとんどの場合、これを使用する必要はありません。
任意のコードが実行される可能性があるため、セキュリティ上の問題もあります。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。