在while循环中的赋值操作 - Javascript

7

我遇到了一个奇怪的情况——以下是JavaScript代码——在NetBeans IDE 8.0中,我看到了一个警告:“应该使用条件表达式,而不是赋值表达式”:

var elem;
var a = 0;
while ((elem = document.getElementById('id-' + a)) !== null) {
    //Some code
    a++;
}

但是代码运行良好。可能这是Netbeans IDE 8.0中的一些bug?

1个回答

8
代码没问题。IDE 警告是因为通常会进行比较(==),但有时实际想要的是赋值(=)。这是为了捕捉由于漏掉等号而产生的错误。
在这里,你设置了elem变量,并同时将其与null进行比较。

值得注意的是,null检查与getElementById重复了,只是为了读者的好处而存在。 - blgt
如果我使用!=,那么我会得到额外的警告:期望 "!==",但看到的是 "!="。 - Ernestas Gruodis
@ErnestasGruodis 我猜它对允许的内容非常严格。!=是有效的。 - Scimonster

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接