首页 > 解决方案 > 在while循环JavaScript中使用函数作为语句?

问题描述

我相信之前已经发布过类似的问题,但我不完全理解为什么使用回调函数作为 While 循环语句,如下所示,会导致无限循环:

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

function myFunc(){
    return false;
}

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

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

这是为什么?

标签: javascriptwhile-loopcallbackdo-while

解决方案


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

myFunc()另一方面, 是myFunct被调用的结果,等于false

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

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

推荐阅读