-1
在第二章使用Javascript的第二个练习中,我不明白如何通过n
像50
等于零并返回true?Eloquent Javascript中的递归练习
function isEven(n) {
if (n == 0)
return true;
else if (n == 1)
return false;
else if (n < 0)
return isEven(-n);
else
return isEven(n - 2);
}
console.log(isEven(50));
// → true
console.log(isEven(75));
// → false
console.log(isEven(-1));
// → false
如果我在控制台输入:
>var x = 50;
>50 == 0;
>false
返回FALSE。为什么是这样?我不是英语母语的人,所以也许我没有正确阅读JS代码中的东西?
这很明显是错误的,所以请注意下一个。 '50 == 1'也是错误的,所以请跳过。 '50 <0'也是错误的,所以最后'return isEven(n-2)',它再次运行该函数,但是与48一样。重复46,44 ... 4,2,0。 '0 == 0'是真的。 –
遍历调试器中的代码。 – 2017-03-17 19:33:11
当然,你可以只是'返回n%2 == 0'而不是... –