true に設定すると、これらのオプションにより JSHint はコードに関する警告をより多く生成します。
bitwise |
このオプションは、 |
camelcase |
警告 このオプションは非推奨となり、次のメジャーリリースで削除されます。
JSHint はコードの正確性の問題に範囲を限定しています。コードスタイルに関するルールを適用したい場合は、JSCS プロジェクトを確認してください。 このオプションを使用すると、すべての変数名に camelCase スタイルまたはアンダースコア付きの UPPER_CASE のいずれかを使用するように強制できます。 |
curly |
このオプションでは、ループと条件文のブロックに常に波括弧を付ける必要があります。JavaScript では、ブロックが 1 つのステートメントのみで構成されている場合、波括弧を省略できます。例:
ただし、状況によっては、バグにつながる可能性があります(
|
enforceall |
警告 このオプションは非推奨となり、次のメジャーリリースで削除されます。
このオプションは、ユーザーを自動的に新機能に含めることなく維持できません。これにより、JSHint のマイナーバージョンのアップグレード時に予期しない警告/エラーが発生する可能性があります。 このオプションは、JSHint バージョン 2.6.3 で利用可能な最も厳格な JSHint 設定の省略形です。すべての強制オプションを有効にし、そのリリースで定義されたすべての緩和オプションを無効にします。 |
eqeqeq |
このオプションは、 |
es3 |
警告 このオプションは非推奨となり、次のメジャーリリースで削除されます。
代わりに このオプションは、コードが ECMAScript 3 仕様に準拠する必要があることを JSHint に伝えます。Internet Explorer 6/7/8/9 などの古いブラウザやその他のレガシー JavaScript 環境でプログラムを実行可能にする必要がある場合に、このオプションを使用してください。 |
es5 |
警告 このオプションは非推奨となり、次のメジャーリリースで削除されます。
代わりに ECMAScript 5.1 仕様で最初に定義された構文を有効にします。これには、予約済みキーワードをオブジェクトのプロパティとして許可することが含まれます。 |
esversion |
このオプションは、コードが準拠する必要がある ECMAScript のバージョンを指定するために使用されます。次の値のいずれかを想定できます。
|
forin |
このオプションでは、すべての
JavaScript の |
freeze |
このオプションは、
|
futurehostile |
このオプションは、将来のバージョンの JavaScript で定義されている識別子の使用に関する警告を有効にします。それらの上書きは、実装されていないコンテキストでは影響しませんが、この方法は、コードベースを新しいバージョンの言語に移行する際に問題を引き起こす可能性があります。 |
globals |
このオプションを使用して、ソースコードで正式に定義されていないグローバル変数のホワイトリストを指定できます。プロジェクト固有のグローバル変数に関する警告を抑制するために、 エントリを 共通の JavaScript 環境で定義されているグローバル変数を有効にする省略形として使用される一連のオプションである「環境」オプションも参照してください。 個々のファイル内で |
immed |
警告 このオプションは非推奨となり、次のメジャーリリースで削除されます。
JSHint はコードの正確性の問題に範囲を限定しています。コードスタイルに関するルールを適用したい場合は、JSCS プロジェクトを確認してください。 このオプションは、括弧で囲まずに即時関数の呼び出しを使用することを禁止します。括弧で囲むことで、コードの読者は式が関数の結果であり、関数自体ではないことを理解するのに役立ちます。 |
indent |
警告 このオプションは非推奨となり、次のメジャーリリースで削除されます。
JSHint はコードの正確性の問題に範囲を限定しています。コードスタイルに関するルールを適用したい場合は、JSCS プロジェクトを確認してください。 このオプションは、コードの特定のタブ幅を設定します。 |
latedef |
このオプションは、定義される前に変数を使用することを禁止します。JavaScript には関数スコープのみがあり、それに加えて、すべての変数は常に関数の一番上に移動(またはホイスティング)されます。この動作は非常に厄介なバグにつながる可能性があるため、明示的に定義された後でのみ変数を使用する方が安全です。 "nofunc" に設定すると、関数宣言を無視できます。 JavaScript のスコープとホイスティングについてさらに深く理解するには、Ben Cherry によるJavaScript Scoping and Hoisting を読んでください。 |
leanswitch |
このオプションは、
このような句は技術的には有効ですが、プログラムの動作には影響せず、誤ったリファクタリングを示している可能性があります。 |
maxcomplexity |
このオプションを使用すると、コード全体のサイクロマティック複雑度を制御できます。サイクロマティック複雑度は、プログラムのソースコードを通る線形独立パス数を測定します。Wikipedia のサイクロマティック複雑度について詳しく読むことができます。 |
maxdepth |
このオプションを使用すると、ブロックをどれだけネストさせるかを制御できます。
|
maxerr |
このオプションを使用すると、JSHint が断念する前に生成するエラーの最大数を設定できます。デフォルトは 50 です。 |
maxlen |
警告 このオプションは非推奨となり、次のメジャーリリースで削除されます。
JSHint はコードの正確性の問題に範囲を限定しています。コードスタイルに関するルールを適用したい場合は、JSCS プロジェクトを確認してください。 このオプションを使用すると、行の最大長を設定できます。 |
maxparams |
このオプションを使用すると、関数ごとに許可される正式パラメーターの最大数を設定できます。
|
maxstatements |
このオプションを使用すると、関数ごとに許可されるステートメントの最大数を設定できます。
|
newcap |
警告 このオプションは非推奨となり、次のメジャーリリースで削除されます。
JSHint はコードの正確性の問題に範囲を限定しています。コードスタイルに関するルールを適用したい場合は、JSCS プロジェクトを確認してください。 このオプションでは、コンストラクター関数の名前を大文字にする必要があります。 そうしないと、ブラウザや環境でコードが壊れることはありませんが、コードを読むことで関数が |
noarg |
このオプションは、 |
nocomma |
このオプションは、カンマ演算子の使用を禁止します。誤用すると、カンマ演算子はステートメントの値を曖昧にし、間違ったコードを促進する可能性があります。 |
noempty |
警告 このオプションは非推奨となり、次のメジャーリリースで削除されます。
JSHint はコードの正確性の問題に範囲を限定しています。コードスタイルに関するルールを適用したい場合は、JSCS プロジェクトを確認してください。 このオプションは、コードに空のブロックがある場合に警告します。JSLint はもともとすべての空のブロックに対して警告を出していましたが、単にオプションにしました。JavaScript で空のブロックがコードを何らかの方法で壊すという報告はありませんでした。 |
nonbsp |
このオプションは、「改行しない空白」文字について警告します。これらの文字は、Mac コンピューターで option-space を使用して入力でき、UTF8 以外の Web ページを壊す可能性があります。 |
nonew |
このオプションは、副作用のためにコンストラクター関数を使用することを禁止します。一部の人は、その結果を変数に代入せずにコンストラクター関数を呼び出すのが好きです。
|
noreturnawait |
非同期関数は、戻り値で解決します。ほとんどの場合、AwaitExpression(それ自体が Promise インスタンス)の結果を返すことは不要です。明確にするために、非同期操作の結果を直接返す方が好ましいことがよくあります。注目すべき例外は、TryStatement の https://jakearchibald.com/2017/await-vs-return-vs-return-await/ |
predef |
このオプションを使用すると、JSHint が環境で暗黙的に定義されていると見なす変数を制御できます。文字列値の配列で構成します。変数名の前にハイフン (-) 文字を付けることで、事前定義された変数の集合からその名前を削除できます。 JSHint は、このように宣言された変数を読み取り専用と見なします。 このオプションはインラインで指定できません。JavaScript API または外部設定ファイルからのみ使用できます。 |
quotmark |
警告 このオプションは非推奨となり、次のメジャーリリースで削除されます。
JSHint はコードの正確性の問題に範囲を限定しています。コードスタイルに関するルールを適用したい場合は、JSCS プロジェクトを確認してください。 このオプションは、コード全体で使用される引用符の一貫性を強制します。3 つの値を受け入れます。特定のスタイルを強制したくないが、ある程度の一貫性を求める場合は |
regexpu |
このオプションは、「u」フラグを含まない正規表現に関する警告を有効にします。「u」フラグは Unicode のサポートを拡張し、より厳格な構文解析ルールも有効にします。JSHint は、「u」フラグをサポートしていない JavaScript エンジンで実行されている場合でも、これらのルールを強制します。 |
shadow |
このオプションは、変数のシャドーイング(つまり、外側のスコープで既に宣言されている変数を宣言すること)に関する警告を抑制します。
|
singleGroups |
このオプションは、厳密に必要でない場合にグルーピング演算子の使用を禁止します。このような使用法は一般的に、単項演算子の誤解を反映しています。例えば
|
strict |
このオプションは、コードがECMAScript 5の厳格モードで実行されることを要求します。厳格モードは、JavaScriptの制限されたバリアントを選択できる方法です。厳格モードは、エラーを引き起こさなかったJavaScriptのいくつかの落とし穴を、エラーを生成するように変更することで排除します。また、JavaScriptエンジンが特定の最適化を実行することを困難にした間違いも修正します。
|
trailingcomma |
このオプションは、配列またはオブジェクトリテラルの最後の要素の後にコンマが配置されていない場合に警告します。古いバージョンのIEのバグのため、以前は末尾のコンマは推奨されていませんでしたが、ES5以降、そのセマンティクスは標準化されました。(#11.1.4と#11.1.5を参照)。現在、これらは、セミコロンの厳格な使用が防止するのに役立つ、同じ視覚的な曖昧性を防ぐのに役立ちます。 例えば、このコードは先週の火曜日に動作したかもしれません。
しかし、配列に要素を追加して、欠落しているコンマを補うことを忘れると、構文エラーは発生せず、リンターはこのミスであるか意図的な関数呼び出しであるかを判断できません。
リスト項目に常にコンマを付けて追加すれば、この曖昧性は発生しません。
|
undef |
このオプションは、明示的に宣言されていない変数の使用を禁止します。このオプションは、リークしている変数やタイプミスした変数を発見するのに非常に役立ちます。
変数が別のファイルで定義されている場合は、 |
unused |
このオプションは、定義して一度も使用していない変数がある場合に警告します。特に
さらに、このオプションは、
|
varstmt |
trueに設定すると、VariableStatementsの使用が禁止されます。例えば
|
trueに設定すると、これらのオプションにより、JSHintはコードに関する警告を少なくします。
asi |
このオプションは、セミコロンの欠落に関する警告を抑制します。コミュニティの多くの人々によって、セミコロンに関する多くのFUD(恐怖、不確実性、疑念)が広められています。一般的な誤解としては、セミコロンは常に必要である(そうではない)、そして信頼性が低いということです。JavaScriptにはセミコロンに関するルールがあり、すべてのブラウザによって遵守されているため、コードでセミコロンを使用するかどうかはあなた次第です。 JavaScriptにおけるセミコロンの詳細については、Isaac SchlueterによるAn Open Letter to JavaScript Leaders Regarding SemicolonsとJavaScript Semicolon Insertionを参照してください。 |
boss |
このオプションは、比較が期待される場合に代入の使用に関する警告を抑制します。多くの場合、
このエラーは、代入を括弧で囲むことで、使用ごとに無効にすることができます。例えば
|
debug |
このオプションは、コード内の |
elision |
このオプションは、コードがES3配列の省略要素、つまり空の要素(例: |
eqnull |
このオプションは、 |
esnext |
警告 このオプションは非推奨となり、次のメジャーリリースで削除されます。
代わりに このオプションは、コードがECMAScript 6固有の構文を使用していることをJSHintに伝えます。すべてのブラウザがこれらの機能を実装しているわけではないことに注意してください。 詳細情報 |
evil |
このオプションは、 |
expr |
このオプションは、通常は代入または関数呼び出しが見られる場所に式を使用することについての警告を抑制します。ほとんどの場合、そのようなコードはタイプミスです。しかし、仕様では禁止されておらず、そのためこの警告はオプションです。 |
funcscope |
このオプションは、制御構造内で変数を宣言し、後で外部からアクセスすることについての警告を抑制します。
|
globalstrict |
警告 このオプションは非推奨となり、次のメジャーリリースで削除されます。
このオプションは、グローバルな厳格モードの使用に関する警告を抑制します。グローバルな厳格モードはサードパーティのウィジェットを壊す可能性があるため、推奨されません。 厳格モードの詳細については、 |
iterator |
このオプションは、 |
lastsemic |
このオプションは、セミコロンの欠落に関する警告を抑制しますが、1行のブロックの最後のステートメントでセミコロンが省略された場合のみです。
これは非常にニッチなユースケースであり、自動JavaScriptコードジェネレーターを使用する場合にのみ役立ちます。 |
laxbreak |
警告 このオプションは非推奨となり、次のメジャーリリースで削除されます。
JSHint はコードの正確性の問題に範囲を限定しています。コードスタイルに関するルールを適用したい場合は、JSCS プロジェクトを確認してください。 このオプションは、コード内の潜在的に安全でない改行に関するほとんどの警告を抑制します。コンマ優先のコーディングスタイルに関する警告は抑制しません。それらを抑制するには、 |
laxcomma |
警告 このオプションは非推奨となり、次のメジャーリリースで削除されます。
JSHint はコードの正確性の問題に範囲を限定しています。コードスタイルに関するルールを適用したい場合は、JSCS プロジェクトを確認してください。 このオプションは、コンマ優先のコーディングスタイルに関する警告を抑制します。
|
loopfunc |
このオプションは、ループ内の関数に関する警告を抑制します。ループ内で関数を定義すると、このようなバグが発生する可能性があります。
上記のコードを修正するには、
|
moz |
このオプションは、コードがMozilla JavaScript拡張機能を使用していることをJSHintに伝えます。Firefox Webブラウザ用に特に開発していない限り、このオプションは必要ありません。 詳細情報 |
multistr |
警告 このオプションは非推奨となり、次のメジャーリリースで削除されます。
JSHint はコードの正確性の問題に範囲を限定しています。コードスタイルに関するルールを適用したい場合は、JSCS プロジェクトを確認してください。 このオプションは、複数行文字列に関する警告を抑制します。複数行文字列は、誤ってエスケープ文字( このオプションは正しい複数行文字列を許可しますが、エスケープ文字がない複数行文字列、またはエスケープ文字と空白の間に何かがある複数行文字列については、引き続き警告します。
|
notypeof |
このオプションは、無効な
これらのチェックを絶対的に必要としない場合を除き、このオプションを使用しないでください。 |
noyield |
このオプションは、 |
plusplus |
このオプションは、単項のインクリメントとデクリメント演算子の使用を禁止します。一部の人は、 |
proto |
このオプションは、 |
scripturl |
このオプションは、スクリプトを対象としたURL(例: |
sub |
警告 このオプションは非推奨となり、次のメジャーリリースで削除されます。
JSHint はコードの正確性の問題に範囲を限定しています。コードスタイルに関するルールを適用したい場合は、JSCS プロジェクトを確認してください。 このオプションは、ドット表記で表すことができる場合に |
supernew |
このオプションは、
|
validthis |
このオプションは、コードが厳格モードで実行されている場合、およびコンストラクター以外の関数で 注:このオプションは、関数スコープ内でのみ使用できます。グローバルにこのオプションを設定しようとすると、JSHintはエラーで失敗します。 |
withstmt |
このオプションは、 詳細情報 |
これらのオプションにより、JSHintは事前に定義されたグローバル変数について認識します。
browser |
このオプションは、最新のブラウザによって公開されるグローバル変数を定義します。古くからの 注:このオプションは、 |
browserify |
このオプションは、プロジェクトを構築するためにBrowserifyツールを使用する場合に使用できるグローバル変数を定義します。 |
couch |
このオプションは、CouchDBによって公開されるグローバル変数を定義します。CouchDBは、JavaScriptを使用してMapReduce方式でクエリおよびインデックスを作成できる、ドキュメント指向データベースです。 |
devel |
このオプションは、貧弱なデバッグに使用されるログ出力に通常使用されるグローバル変数を定義します: |
dojo |
このオプションは、Dojo Toolkitによって公開されるグローバル変数を定義します。 |
jasmine |
このオプションは、Jasmineユニットテストフレームワークによって公開されるグローバル変数を定義します。 |
jquery |
このオプションは、jQuery JavaScriptライブラリによって公開されるグローバル変数を定義します。 |
mocha |
このオプションは、Mochaユニットテストフレームワークの「BDD」および「TDD」UIによって公開されるグローバル変数を定義します。 |
module |
このオプションは、入力コードがECMAScript 6モジュールを記述していることをJSHintに知らせます。すべてのモジュールコードは厳格モードコードとして解釈されます。 |
mootools |
このオプションは、MooTools JavaScriptフレームワークによって公開されるグローバル変数を定義します。 |
node |
このオプションは、コードがNodeランタイム環境内で実行されている場合に使用できるグローバル変数を定義します。Node.jsは、非同期イベント駆動モデルを使用するサーバーサイドJavaScript環境です。このオプションはまた、ブラウザ環境では意味がありますが、Nodeでは意味がない警告(ファイルレベルの |
nonstandard |
このオプションは、 |
phantom |
このオプションは、コアがPhantomJSランタイム環境内で実行されている場合に利用可能なグローバル変数を定義します。PhantomJSは、JavaScript APIを持つヘッドレスWebKitスクリプティングエンジンです。DOM操作、CSSセレクタ、JSON、Canvas、SVGなど、様々なウェブ標準を高速かつネイティブにサポートしています。 |
prototypejs |
このオプションは、Prototype JavaScriptフレームワークによって公開されるグローバル変数を定義します。 |
qunit |
このオプションは、QUnit単体テストフレームワークによって公開されるグローバル変数を定義します。 |
rhino |
このオプションは、コードがRhinoランタイム環境内で実行されている場合に利用可能なグローバル変数を定義します。Rhinoは、Javaで完全に記述されたJavaScriptのオープンソース実装です。 |
shelljs |
このオプションは、ShellJSライブラリによって公開されるグローバル変数を定義します。 |
typed |
このオプションは、型付き配列コンストラクタのグローバル変数を定義します。 詳細情報 |
worker |
このオプションは、コードがWeb Worker内で実行されている場合に利用可能なグローバル変数を定義します。Web Workersは、ウェブコンテンツがバックグラウンドスレッドでスクリプトを実行するための簡単な手段を提供します。 |
wsh |
このオプションは、コードがWindows Script Hostのスクリプトとして実行されている場合に利用可能なグローバル変数を定義します。 |
yui |
このオプションは、YUI JavaScriptフレームワークによって公開されるグローバル変数を定義します。 |
これらのオプションは、JSHintのメジャーリリース間で変更される可能性のある動作を有効にします。自動化された環境(例:継続的インテグレーション)で有効にする場合は注意してください。
exports.unstable = { }; // これらはJSHintのブール値オプションであり、JSLintと共有されています // JSHintでの定義はJSLintとは逆です exports.inverted = { bitwise |
不安定なオプションでは、JavaScript言語への提案された追加の構文解析とリンティングを制御できます。それらが記述する言語機能と同様に、これらのオプションの存在と動作は不安定です。JSHintは、メジャーバージョンリリース間でそれらを削除または変更する権利を留保します。 |