ドキュメントfuncscope
のオプションの説明に基づいて、JSHint は、制御構造などの「意図したスコープ」で宣言されている変数の有用性を認識しているようです (実際には、JS の関数内にはスコープが 1 つしかありません)。
では、なぜi
複数回宣言されていると言って、次のエラーが発生するのでしょうか?
if (condition) {
var i = 1;
//
}
else {
var i = 2;
//
}
funcscope
true または false に設定しても役に立ちません。このエラーを抑制する方法はありますか?
(「論理的/意図的な」変数スコープを持ち、必要な場所にできるだけ近い変数を「定義」するのが好きです。コードチャンクを移動する必要がある場合に役立ちます。
編集:変数巻き上げについて知っています。var
しかし、関数の先頭ですべての s を宣言するという Douglas Crockford の見解には同意しません。これにより、コードが読みにくくなり、コード スニペットを移動する必要がある場合のリファクタリングも難しくなります。funcscope
JSHint ホームページでのドキュメントを読むと、意図されたスコープについても説明されています。これは、まさに私が言及しているものでもあります。この文脈で質問しています)