【发布时间】:2017-12-01 22:15:54
【问题描述】:
我已经坚持了几个小时。我在 JavaScript 中测试了一个递归函数,从 if 语句返回,但只有函数执行上下文结束并且我试图返回的值没有分配给变量。 console.log 是未定义的。
这是我的代码,很简单,因为我正在学习递归函数:
function foo(i) {
// if i equals 5, return out of function
if (i === 5) {
console.log("We are now at 5");
return "Done";
} else {
console.log(i);
foo(++i);
}
}
let test = foo(0);
console.log(test);
我只是不明白为什么它不向变量返回“完成”,但是如果我将 return 语句放在 if/else 之外,它会返回我想要的方式。我尝试了其他常规、简单、非递归函数,它们在 if 块中返回正常。
【问题讨论】:
标签: javascript function recursion