在 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 是指向对象函数的指针。
您必须调用才能跳出死循环
我相信之前也有人提出过类似的问题,但我不完全理解为什么将回调函数用作 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 是指向对象函数的指针。
您必须调用才能跳出死循环