返回的JavaScript递归函数未定义
我期待着“成功”的价值,但我越来越不确定了。我不明白为什么返回的JavaScript递归函数未定义,javascript,Javascript,我期待着“成功”的价值,但我越来越不确定了。我不明白为什么 var递归=函数(n){ 如果(n==0){ console.log('yup'); 回归"成功",; } console.log(n) 递归(n-1); } var x=递归(10); 控制台日志(x)您需要返回递归(n-1)您需要返回递归(n-1)如果条件不满足,则代码中缺少返回语句 var递归=函数(n){ 如果(n==0){ console.log('yup'); 回归"成功",; } console.log(n) 返回递归
var递归=函数(n){
如果(n==0){
console.log('yup');
回归"成功",;
}
console.log(n)
递归(n-1);
}
var x=递归(10);
控制台日志(x)代码>您需要返回递归(n-1)代码>您需要返回递归(n-1)代码>如果条件不满足,则代码中缺少返回语句
var递归=函数(n){
如果(n==0){
console.log('yup');
回归"成功",;
}
console.log(n)
返回递归(n-1);
//--^--
}
var x=递归(10);
控制台日志(x)代码>当if条件不满足时,代码中缺少返回语句
var递归=函数(n){
如果(n==0){
console.log('yup');
回归"成功",;
}
console.log(n)
返回递归(n-1);
//--^--
}
var x=递归(10);
控制台日志(x)代码>更改为:
return recursion(n-1)
改为:
return recursion(n-1)
如前所述,您需要返回递归(n-1)代码>
有趣的。。。我很难把头绕起来。当我返回函数时,我希望函数中断并返回一个值,不再执行
但是在n!==0
函数不返回任何内容
递归只是一个普通的函数调用,没有什么特别的。这不像break
ing循环。return
语句不会在整个调用堆栈中刷新结果,只是因为函数调用了自身。它只返回其直接调用方。在您的例子中,最顶层的函数调用递归(10)
不返回任何内容,因此未定义的正如前面提到的,您需要返回递归(n-1)代码>
有趣的。。。这让我很难理解。当我返回函数时,我希望函数中断并返回一个值,不再执行
但是在n!==0
函数不返回任何内容
递归只是一个普通的函数调用,没有什么特别的。这不像break
ing循环。return
语句不会在整个调用堆栈中刷新结果,只是因为函数调用了自身。它只返回其直接调用方。在您的例子中,最顶层的函数调用递归(10)
不返回任何内容,因此未定义的返回递归(n-1)代码>有趣的。。。这让我很难理解。当我返回函数时,我希望函数中断并返回一个不再执行的值…返回递归(n-1)代码>有趣的。。。这让我很难理解。当我返回函数时,我希望函数中断并返回一个值,不再执行。。。