我正在尝试学习JS中的递归函数,但由于某种原因,结果是 undefined 我想分别警告(4,3,2,1,0)。
function someFun(number) {
if (number < 0) {
return 1;
}
else {
alert(number = someFun(number - 1))
}
}
someFun(4)
答案 0 :(得分:5)
您的函数中只有一个return
语句。当else
语句的if
路径被采用时,不会返回任何内容。
那就是说,你真的不需要需要一个返回值,因为你只想打印数字序列(以降序顺序):
function someFun(number) {
if (number >= 0) {
alert(number);
someFun(number - 1);
}
}
someFun(4);
如果您希望以升序顺序打印数字,则只需颠倒alert()
和递归调用的顺序。