Javascript 应为赋值或函数调用,而不是看到表达式
我对这个错误完全没有意见。我怎么能容忍呢?有标志或复选框吗 当你做一些事情,比如:Javascript 应为赋值或函数调用,而不是看到表达式,javascript,jslint,jshint,Javascript,Jslint,Jshint,我对这个错误完全没有意见。我怎么能容忍呢?有标志或复选框吗 当你做一些事情,比如: v && arr.push(v); 与之相反: if (v) { arr.push(v); } 两者都做同样的事情。如果你把: window.test = function(v) { 'use strict'; var arr = []; if (v) { arr.push(v); } return arr; }; 到了最后,它
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};
我不认为JSLint有关闭它的选项
(具有更多选项的fork)有一个选项:expr选项,记录为“if ExpressionStatement应该允许作为程序使用”。JSLint中没有此选项。您可以使用以下方法规避此问题:
var dummy = v && arr.push(v);
注意:dummy
在此之后计算为true
另一个解决办法是:
function expression(statement) {
'use strict';
return statement;
}
expression(v && arr.push);
可以添加以下行以忽略该警告: /*jshint-W030*/
您可以阅读更多有关它的信息。正在研究如何在使用时抑制它的人。你可以在这行的正上方写下下面的评论来忽略它 您还可以通过在文件的最顶部放置以下注释来抑制整个文件的警告
/* eslint-disable no-unused-expressions */
@迪乔:你也可以下载并在本地使用(我就是这么做的)。我使用首选选项集通过NodeJS运行它,极大地帮助我对正确的代码充满信心。:-)请再描述一下,为什么会发生这样的警告?它会起作用,但很愚蠢。minifier实际上会对其进行分类,但是为了可读性,最好只使用
if
语句,而不是IMO语句。这是真的。但你要求的是一种容忍的方式。添加了另一种解决方法。就像Crockford在某个地方说的:jsLint被设计成程序员的麻烦;~)错了奇妙的&&hack在jsLint中不起作用。。。可能取决于版本…答案与问题完全无关,问题是关于JSLint,而不是JSHint。但对于大多数登陆这里的人来说,这仍然是最有用的答案。“完全无关”?因为JSHint与JSLint完全无关?我建议您也提供这个特定规则的文档链接
/* eslint-disable no-unused-expressions */