我正在尝试从这里做一个练习 https://www.w3resource.com/javascript-exercises/javascript-recursion-function-exercise-7.php
我理解这个解决方案,但是,我有点好奇为什么我的程序没有产生与上面相同的答案。我选择函数返回的方式略有不同,但是,它产生一个数字而不是 true 或 false。
function checkeven(num) {
if (num === 0) {
return true;
} else if (num === 1) {
return false;
} else {
console.log(num);
return num - checkEven(num - 2);
}
}
console.log(checkeven(8));
console.log(checkeven(9));
最佳答案
在 JavaScript 中 - 当运算符的操作数具有不同类型时 - 会发生类型 corecion,即它尝试将其中一个操作数转换为与运算符兼容的类型
试试这个:
console.log(2 + true)//3
console.log(true + false)//1
根据您的情况,请考虑尝试 checkeven(2)
时会发生什么
checkeven(2) = 2 - checkeven(0) = 2 - true = 1
关于javascript - 如何在 JavaScript 中使用递归函数检查数字是否为偶数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53882710/