javascript - 在while循环JavaScript中使用函数作为语句?
问题描述
我相信之前已经发布过类似的问题,但我不完全理解为什么使用回调函数作为 While 循环语句,如下所示,会导致无限循环:
do {
console.log("repeat");
} while(myFunc);
function myFunc(){
return false;
}
另一方面,这个版本打印“重复”一次然后停止:
do {
console.log("repeat");
} while(myFunc === false);
这是为什么?
解决方案
myFunc
是一个变量(JS中所有函数都是对象变量),不等于false
.
myFunc()
另一方面, 是myFunct
被调用的结果,等于false
。
所以你应该通过调用它来比较函数的结果,而不是函数本身:
do {
console.log("repeat");
} while(myFunc() === false);
推荐阅读
- reactjs - React JS如何更新数组中的值
- c# - 并行运行多个测试时出现 DI / Unity OutOfMemoryException
- python - 熊猫图 - 两个轴标签重叠
- google-sheets - 将数据集过滤为单元格值和数组的最佳方法是什么?
- python - 使用受控词汇表和 python 对句子进行分类
- c - 如何处理从复杂输入(字符串)中提取双精度数
- android - 如何在服务 Android 中检查数据库
- python - 如何在matplotlib中调整图例框中的legend_handler的位置
- php - 在应用程序中获取具有服务器路径的文件,而不是通过 http?
- hibernate - 具有共享 FK 的 JPA 多个多对一