递归返回undefined而不是true

mek*_*eks 1 javascript recursion loops if-statement function

我很奇怪为什么这个函数返回undefined?有人可以帮我解释一下吗?

function isEven(i) {
  if (i === 0 ) {
    return true;
  } else if (i == 1) {
    return false;
  } else {
    console.log(i);
    isEven(i - 2);
  }
}
console.log(isEven(6));
Run Code Online (Sandbox Code Playgroud)

kem*_*002 7

你没有在else语句中返回.在JavaScript中,所有函数都必须返回一些内容,因此如果忘记输入return语句,它将返回undefined.

} else {
    console.log(i);
    isEven(i - 2)
}
Run Code Online (Sandbox Code Playgroud)

应该

 } else {
    console.log(i);
    return isEven(i - 2);
}
Run Code Online (Sandbox Code Playgroud)