期望一个赋值或函数调用,而是看到一个表达式

时间:2012-03-02 13:22:36

标签: javascript jslint jshint

我对这个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;
};

进入minifier它无论如何都会缩小到这个:

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

4 个答案:

答案 0 :(得分:75)

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

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

答案 1 :(得分:36)

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

  

/ * jshint -W030 * /

您可以详细了解here

答案 2 :(得分:9)

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

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

注意:dummy之后评估为true

另一种解决方法可能是:

function expression(statement) { 
 'use strict';
 return statement; 
}
expression(v && arr.push);

答案 3 :(得分:1)

正在寻找如何使用ESLint来抑制它的人们。您可以通过在该行的上方写下以下注释来忽略它。

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

您还可以通过在文件的顶部放置以下注释来取消显示整个文件的警告

/* eslint-disable no-unused-expressions */