代码:
function forLoop(x) {
if (x >= 10) {
console.log(x); // here if I add console.log(x) , x value is 10
return (x); // next line if i return x output = undefined
}
forLoop(x + 1);
}
console.log(forLoop(0));
输出是“未定义”而不是10。
任何人都可以详细解释递归的工作原理以及如何修复我的代码中的错误吗?
答案 0 :(得分:2)
如果x大于或等于10,则函数返回x。
否则,它会将自己称为但不返回任何内容。
if
失败时,您必须返回一些内容。
function forLoop(x) {
if (x >= 10) {
return (x);
}
return forLoop(x + 1);
}