38

我对这个JSLint错误非常满意。我怎么能忍受呢?是否有它的标志或复选框?

当您执行以下操作时,您会得到它:

v && arr.push(v);

相对于:

if (v) {
    arr.push(v);
}

两者都做同样的事情。如果你放:

window.test = function(v) {
    'use strict';
    var arr = [];
    if (v) {
        arr.push(v);
    }
    return arr;
};

无论如何,它都会缩小到缩小器中:

window.test=function(a){var b=[];a&&b.push(a);return b};
4

4 回答 4

76

我不认为 JSLint 可以选择关闭它。

JSHint(具有更多选项的分支)有一个选项,但是:该expr选项记录为“如果应允许将 ExpressionStatement 作为程序”。

于 2012-03-02T13:30:21.900 回答
36

您可以添加以下行以忽略该警告:

/*jshint -W030 */

你可以在这里阅读更多关于它的信息。

于 2014-05-28T15:59:50.457 回答
11

正在寻找如何在使用ESLint时抑制它的人。您可以通过在no-unused-expressions行上方编写以下注释来忽略它

// eslint-disable-next-line no-unused-expressions

您还可以通过在文件的最顶部放置以下注释来抑制整个文件的警告

/* eslint-disable no-unused-expressions */
于 2018-12-17T06:01:08.367 回答
9

在 JSLint 中没有这个选项。您可以使用以下方法规避它:

var dummy = v && arr.push(v);

注意:在那之后dummy评估true

另一种解决方法可能是:

function expression(statement) { 
 'use strict';
 return statement; 
}
expression(v && arr.push);
于 2012-03-02T13:31:34.683 回答