在 while 循环 JavaScript 中使用函数作为语句?

Using a function as statement in while loop JavaScript?

我相信之前也有人提出过类似的问题,但我不完全理解为什么将回调函数用作 While 循环语句(如下所示)会导致无限循环:

do {
    console.log("repeat");
} while(myFunc);

function myFunc(){
    return false;
}

另一方面,这个版本打印“repeat”一次然后停止:

do {
    console.log("repeat");
} while(myFunc === false);

这是为什么?

myFunc是变量(JS中所有函数都是对象变量),不等于false.

另一方面,

myFunc()是调用myFunct的结果,而等于false.

所以你应该通过调用比较函数的结果,而不是函数本身:

do {
    console.log("repeat");
} while(myFunc() === false);

完全同意评论,您正在检查的条件始终为真,因为 myFunc 是指向对象函数的指针。

您必须调用才能跳出死循环