是否有理由不在while块声明中分配变量?

jos*_*osh 2 javascript node.js

每当我做这样的事情......

var obj;

while (obj = doSomething()) {
  // something with obj
}
Run Code Online (Sandbox Code Playgroud)

JSHint告诉我warning 84| Expected a conditional expression and instead saw an assignment..但是,do会obj = doSomething()返回doSomething()赋值期间返回的值,因此以这种方式编写while循环是有意义的.

有没有一个特定的原因,JSHint警告我,更重要的是,有没有理由不这样做?或者,我可以告诉JSHint忽略那些特定警告的行吗?

the*_*eye 5

该警告是为了确保您没有错误输入=而不是=====.

相反,您可以获得评估结果的布尔值,如下所示

while (!!(obj = doSomething())) {
Run Code Online (Sandbox Code Playgroud)