JSHint からの警告は次のとおりです。
代入または関数呼び出しを期待していましたが、代わりに式を見ました。
を使用しなくても警告が表示されますtry..catch
。JSHint はmap.childNodes.length;
、スタンドアロンのステートメントとしてはおそらく役に立たず、コーディングの誤りを示している可能性が高いことを知らせています。つまり、ほとんどの場合、スタンドアロンのステートメントとして値にアクセスするだけでなく、値を使って何かをしたいと考えています。たとえば、 (useless) statement で同じ警告が表示されます5;
。
もちろん、ステートメント内の唯一の動作としてプロパティにアクセスすると便利な場合もあります。たとえば、 を使用してプロパティにゲッター関数を定義している場合、プロパティObject.defineProperty
にアクセスするとゲッター関数がトリガーされます。ただし、値のみのステートメントはコーディング エラーである可能性が非常に高いため、JSHint は疑わしいコードについて警告します。
そうは言っても、オブジェクトではなくresponse.error
偽の値 ( undefined
, ) である可能性があると心配しているとすれば、アプローチは改善される可能性があります。null
if(response.errors && response.errors.length > 0) {
deferred.resolve(response);
} else {
deferred.reject(response);
}