rya*_*nve 35 javascript jslint jshint
我对这个JSLint错误非常感兴趣.我怎么能忍受呢?它有标志或复选框吗?
当你做以下事情时,你会得到它:
v && arr.push(v);
Run Code Online (Sandbox Code Playgroud)
而不是:
if (v) {
arr.push(v);
}
Run Code Online (Sandbox Code Playgroud)
两者都做同样的事情.如果你把:
window.test = function(v) {
'use strict';
var arr = [];
if (v) {
arr.push(v);
}
return arr;
};
Run Code Online (Sandbox Code Playgroud)
进入minifier它minifies到这个反正:
window.test=function(a){var b=[];a&&b.push(a);return b};
Run Code Online (Sandbox Code Playgroud)
在JSLint中没有这个选项.您可以使用以下方法规避它:
var dummy = v && arr.push(v);
Run Code Online (Sandbox Code Playgroud)
NB:dummy在此true之后进行评估.
另一种解决方法可能是:
function expression(statement) {
'use strict';
return statement;
}
expression(v && arr.push);
Run Code Online (Sandbox Code Playgroud)
使用ESLint时正在寻找如何抑制它的人们。您可以通过在该行上方写以下注释来忽略它。
// eslint-disable-next-line no-unused-expressions
Run Code Online (Sandbox Code Playgroud)
您还可以通过在文件的最顶部放置以下注释来禁止显示整个文件的警告。
/* eslint-disable no-unused-expressions */
Run Code Online (Sandbox Code Playgroud)