每当我做这样的事情......
var obj;
while (obj = doSomething()) {
// something with obj
}
JSHint告诉我warning 84| Expected a conditional expression and instead saw an assignment.
。但是,执行obj = doSomething()
会返回doSomething()
在赋值期间返回的值,因此以这种方式编写while循环是有意义的。
JSHint是否有特殊原因警告我,更重要的是,有没有理由不这样做?或者,我可以告诉JSHint忽略那些特定警告的行吗?
答案 0 :(得分:5)
该警告是为了确保您没有错误输入=
而不是==
或===
。
相反,您可以获得评估结果的布尔值,如此
while (!!(obj = doSomething())) {
答案 1 :(得分:-2)
单=
分配值且不是比较运算符。使用以下内容:
while (obj == doSomething()) {
// something with obj
}