Javascript 检查偶数程序时出现逻辑错误?

Javascript 检查偶数程序时出现逻辑错误?,javascript,Javascript,我只是在读雄辩的JS,并决定做一些练习 基本上,我正在尝试创建一个程序来检查偶数,而不使用%。偶数打印true和奇数打印false function isEven(n) { if (n < 0) n = -n; if (n == 2) return true; if (n == 1) return false; if (n > 2) isEven(n - 2); } 我尝试滑入控制台。在函数中记录,但找不到问题:/ 函数isEven

我只是在读雄辩的JS,并决定做一些练习

基本上,我正在尝试创建一个程序来检查偶数,而不使用
%
。偶数打印
true
和奇数打印
false

function isEven(n) {
  if (n < 0)
    n = -n;
  if (n == 2)
    return true;
  if (n == 1)
    return false;
  if (n > 2)
    isEven(n - 2);
}
我尝试滑入
控制台。在函数中记录
,但找不到问题:/

函数isEven(n){
文件。写(n+“
”); if(n<0) n=-n; 如果(n==2) 返回true; 如果(n==1) 返回false; 如果(n>2) isEven(n-2); } 文件。写(isEven(50)+“
”; // → 真的 文件。写(isEven(75)+“
”; // → 假的 文件。写(isEven(-1)+“
”;
// → ??您忘记返回最后一个
isEven(n-2)

函数isEven(n){
if(n<0)
n=-n;
如果(n==2)
返回true;
如果(n==1)
返回false;
如果(n>2)
返回isEven(n-2);
}

您忘记返回最后一个
isEven(n-2)

函数isEven(n){
if(n<0)
n=-n;
如果(n==2)
返回true;
如果(n==1)
返回false;
如果(n>2)
返回isEven(n-2);
}
您忘了退货

function isEven(n) {
  if (n < 0)
    n = -n;
  if (n == 2)
    return true;
  if (n == 1)
    return false;
  if (n > 2)
    return isEven(n - 2);    // <-----------
}
函数isEven(n){
if(n<0)
n=-n;
如果(n==2)
返回true;
如果(n==1)
返回false;
如果(n>2)
返回值为偶数(n-2);//您忘记了返回值

function isEven(n) {
  if (n < 0)
    n = -n;
  if (n == 2)
    return true;
  if (n == 1)
    return false;
  if (n > 2)
    return isEven(n - 2);    // <-----------
}
函数isEven(n){
if(n<0)
n=-n;
如果(n==2)
返回true;
如果(n==1)
返回false;
如果(n>2)

return isEven(n-2);//我对它的基本原理很不了解。请问为什么需要
return
呢?@Daniel Cheung:每个函数都有一个返回值。你在使用console.log(fn),它本质上是fn返回值的console.log。因此,如果你想记录它,你必须确保你的fn返回一个有效值。没关系,我得到了它。它就像一行
true
返回到开始。我对基本原理很不了解。我可以问一下为什么
返回
是必要的吗?@Daniel Cheung:每个函数都有返回值。您使用的是console.log(fn),它本质上是fn返回值的console.log。因此,如果您想记录它,您必须确保您的fn返回一个有效值。没关系,我得到了它。这就像一行
true
返回到起点一样。
function isEven(n) {
  if (n < 0)
    n = -n;
  if (n == 2)
    return true;
  if (n == 1)
    return false;
  if (n > 2)
    return isEven(n - 2);    // <-----------
}