while 循环中的赋值 - Javascript

Posted

技术标签:

【中文标题】while 循环中的赋值 - Javascript【英文标题】:Assignment in while loop - Javascript 【发布时间】:2015-03-22 09:29:55 【问题描述】:

我遇到了奇怪的情况 - 这里是 javascript 代码 - 在 NetBeans IDE 8.0 中,我看到一条警报“预期是条件表达式,而是看到了一个赋值”:

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

但代码工作正常。也许这是 Netbeans IDE 8.0 中的一些错误?

【问题讨论】:

【参考方案1】:

代码很好。 IDE 的警告是因为通常会进行比较 (==),但有时实际需要的是赋值 (=)。这是为了捕捉因缺少等号而犯的错误。

在这里,您设置elem 变量,同时将其与null 进行比较。

【讨论】:

另外值得注意的是,空检查与getElementById 是多余的,它只是为了读者的利益而存在 如果我使用!=,那么我会收到额外的警告:预期为“!==”,而是看到“!=” @ErnestasGruodis 我想它对允许的内容非常严格。 != 有效。

以上是关于while 循环中的赋值 - Javascript的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 Javascript 中不鼓励在 while 语句中赋值?

Shell while循环语句中的陷阱

JavaScript:while循环中的异步方法

JavaScript 中的 While 循环与 For 循环? [关闭]

oracle中的if || oracle中的loop循环怎么写? || while循环怎么写?

while循环中的Javascript continue语句导致无限循环