JSLintオプション考察「Google Closure」
「Google Closure」は、Googleの提供するJavaScriptライブラリである「Closure Library」の使用を許可するかどうかのオプションです。「Closure Library」を使用している場合に有効(true)にしておけば良いでしょう。それ以外の場合はデフォルト(false)のままで良いと思います。
「Google Closure」は、Googleの提供するJavaScriptライブラリである「Closure Library」の使用を許可するかどうかのオプションです。「Closure Library」を使用している場合に有効(true)にしておけば良いでしょう。それ以外の場合はデフォルト(false)のままで良いと思います。
「messy white space」は、JavaScriptコード中における空白文字(スペースやタブ)の取り扱いを厳密にチェックするかどうかのオプションです。デフォルト(false)では、正しく空白文字が使われていないと警告が表示されます。
このオプションが有効な場合、JavaScriptコード内の空白文字の扱いは正しいフォーマットで統一されていなければなりません。正しいフォーマットとは、半角スペースの挿入位置や、インデントが適切であるということです。
また、このオプションが有効な状態ではタブによるインデントが使用できなくなります。
タブをつかったインデントを許可するような個別オプションはありませんので、どうしてもインデントにタブを使用したければ、「messy white space」オプション自体を無効(true)にするか、JSLintではなく、別のチェックツールを使わなければなりません。
「many var statements per function」は、関数内に複数のvar文を使用することを許可するかどうかのオプションです。デフォルト(false)では、var文は関数につき1つまで許可され、2つ以上のvar文を用いると「Combine this with the previous ‘var’ statement.」という警告が表示されます。
複数の変数宣言を1つのvar文に集約する書き方を「単独varパターン」と言いますが、JSLintのデフォルト設定では、この単独varパターンを推奨(というか強制)しています。
単独varパターンを用いることに(メリットはあるものの)デメリットはありませんので、この強制に従うのが良いアプローチだと思います。ですので、このオプションはデフォルト(false)のままにしておいた方が良いでしょう。
「TODO comments」オプションは、JavaScriptコード中の「TODOコメント」を無視するかどうかを指定するオプションです。デフォルト(false)では、TODOコメントが残っている状態でコードチェックすると「Unexpected TODO comment.」という警告が表示されます。
このオプションがデフォルト(false)のままであれば、TODOコメントがあった際に警告が表示されるので、TODOの実装漏れに気づかせてくれるかもしれません。ですが、そもそもTODOに関しては他の開発ツール側で管理しているのであればわざわざJSLint側でもチェックする必要はないと思うので、そのような場合は true(無効)にしても良いでしょう。
「inefficient subscripting」は、オブジェクトのプロパティを参照する際、参照するプロパティ名が動的ではなく、静的に決定されているにもかかわらず、ブラケット([ ])を用いたプロパティ参照をすることを許可するかどうかのオプションです。
固定的なプロパティ参照をするケースにおいて、わざわざブラケットを使用したプロパティ参照をすることのメリットはありません。このような場合、通常はドットを使ったプロパティ参照にした方が少ない文字数でシンプルに記述できるので、このオプションはデフォルト(false)にしておいた方が良いでしょう。
「stupidity」オプションは、Node.jsを利用する際に、「~Sync」という名前のメソッドの利用を許可するかどうかのオプションらしいです。
とりあえず私みたいに、Node.js?使ってないよ?という方はこのオプションは無視(デフォルトのまま)でOKです。
「missing ‘use strict’ pragma」は、JavaScriptコードをstrictモード(厳格モード)で実行することを表す「”use strict”宣言」の未使用を許可するかどうかのオプションです。デフォルト(false)では、関数はstrictモードで実行させることが強制されるため、”use strict”宣言は必須となります。
特別な事情(コードの設計上の問題など)により、strictモードを適用できない場合を除き、JavaScriptコードはstrictモード準拠で書くべきだと考えます。そのため、このオプションはデフォルト(false)のままにしておくべきでしょう。
「unused parameters」オプションは、宣言されているにもかかららず、一度も使用されていない変数の存在を許可するかどうかのオプションです。
未使用の変数をそのまま生かしておくメリットなど無いので、このオプションはデフォルト(false)のままにしておくべきでしょう。
「. and [^…] in /RegExp/」オプションは、正規表現のパターンにおいて、「.」、および「[^~]」の使用を許可するかどうかのオプションです。デフォルト(false)ではこれらのメタ文字の使用は許可されません。
このオプションがデフォルト(false)の状態で、次のコードをJSLintでチェックすると、それぞれ「Insecure ‘.’」、「Insecure ‘^’」といった警告が表示されます。
「++
and --
」オプションは、++
(インクリメント演算子)、または--
(デクリメント演算子)の使用を許可するかどうかのオプションです。デフォルト(false)では、これらの演算子の使用は許可されません。
このオプションをtrueにするかfalseにするかは、開発者自身、またはチームのコーディングスタイルに合わせて選択すれば良く、JSLintのオプション優先度的には低いと言えるでしょう。