我很奇怪为什么这个函数返回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));
答案 0 :(得分:7)
你没有在else语句中返回。在JavaScript中,所有函数都必须返回一些内容,因此如果忘记输入return语句,它将返回undefined。
} else {
console.log(i);
isEven(i - 2)
}
应该是
} else {
console.log(i);
return isEven(i - 2);
}
答案 1 :(得分:4)
你可以用以下方法简化这个:
function isEven(i){ return i%2===0; }
答案 2 :(得分:1)
//You should return value to expect output
function isEven(i) {
if (i === 0 ) {
return true;
} else if (i == 1) {
return false;
} else {
console.log(i);
return isEven(i - 2);
}
}
console.log(isEven(5))
答案 3 :(得分:1)
或者更简洁的风格,最后返回,因为else
不是必需的,因为return结束了功能的连续性。
function isEven(i) {
if (i === 0 ) {
return true;
}
if (i == 1) {
return false;
}
document.write(i + '<br>');
return isEven(i - 2);
}
document.write(isEven(6));
最短的将是
function isEven(i) {
return !(i & 1);
}
document.write(isEven(5));