【发布时间】:2019-02-04 06:03:49
【问题描述】:
有人可以帮我理解这段 JavaScript 代码的以下问题吗:
let x = 2;
let condition = (x > 0);
do {
console.log("inside do while loop: x is " + x);
x = -1;
console.log(condition);
} while (condition);
我希望得到以下输出:
在do while循环内:x是2
假
相反,我得到了一个无限循环:
在do while循环内:x是2
是的
在do while循环内:x是-1
是的
在do while循环内:x是-1
是的
布尔表达式似乎没有被重新计算,而是保持 x = 2。有人知道这里的一般原理吗?
感谢您的回复。
【问题讨论】:
-
condition在循环之前计算。它不应该在每次下一个引用时重新评估,因为它是一个表达式而不是一个函数。 -
非常感谢大家!
标签: javascript loops while-loop boolean expression