45

私がこのようなものを持っている場合:

var blah = function() { };

その後、コードで何とかが使用されていますが、空のブロックを削除するというJSLintヒントは何ですか?

4

7 に答える 7

5

この警告をオフにする JsLint オプションを尋ねている場合は、「debug:true」です。

奇妙なことに、ドキュメントはこの動作について言及していません。

"デバッガー ステートメントを許容する" | デバッグ| デバッガーステートメントを許可する必要がある場合はtrue 。本番環境に入る前に、このオプションをfalseに設定してください。

しかし、コードを見ると、debug オプションが true に設定されていると警告が表示されないことがわかります。

function block(kind) {
    // A block is a sequence of statements wrapped in braces.

    ...

    if (kind !== 'catch' && array.length === 0 && !option.debug) {
        curly.warn('empty_block');
    }
    ...
}
于 2015-02-26T21:28:57.090 に答える
4

多くのコード チェッカーが、このようなことをチェックします。空のコード ブロックを使用してはならないという意味ではありませんそれらを持っている正当な理由がある場合もあります。しかし、それは多くの場合、プログラマーが実装を書き忘れていることを意味します。:)

私がやりたいのは、関数本体にコメントを入れて、それが空である理由を説明することです。これにより警告は抑制されますが、コード チェッカーがコメント付きのコード ブロックを「空」と見なすかどうかによっては、抑制されない場合があります。

var blah = function() { /* empty because ... */ };
于 2013-07-16T19:59:21.897 に答える
3

演算子を使用して関数をコンストラクターとして使用する場合new:

// Returns the instance that was just created with the new operator.
var ClassLikeFunction = function(){
    return this; 
};

一方、 if は意図的に戻り値のない空の関数です。

// Returns the same value as a function that returned nothing.
var blankFunction = function(){
    return undefined; 
};
于 2014-05-14T02:03:13.453 に答える
2

これ

{
    ...
}

はコード ブロックと見なされ、ヒントはそれが空であることを示しています (コマンドが含まれていません)。ただし、@ Katana314 が言ったように、意図的に削除する必要はありません。

于 2013-07-16T19:58:58.217 に答える