【发布时间】:2015-02-10 20:18:44
【问题描述】:
每当我做这样的事情......
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 忽略该特定警告的那些行吗?
【问题讨论】:
-
你也可以使用
for (var obj = doSomething(); obj; obj = doSomething()) -
@Bergi 乍一看,这看起来像是一个古怪的 for 循环,使用
while对我来说似乎更容易阅读。 -
另见stackoverflow.com/questions/8108184/…。顺便说一句,这不是“while 块 声明”,而是“while [block] 条件”。
-
@Bergi 这很有趣——但没想到会以这种方式使用 for 循环。
-
@torazaburo 当你说它是那个问题的重复时,我认为你不理解我的问题,因为它和这个问题正在讨论相似但不同的事情。那个,或者你只是决定找到一个模糊相似的问题并说它可能是重复的......
标签: javascript node.js