每次我运行此代码时,我都会得到输出,但有了该输出 我也会得到未定义的内容,该未定义的内容表示什么
function factorial(num) {
let final = 1;
function helper(no) {
if (no === 0) return;
if (no > 1) {
final *= no;
}
no--;
helper(no);
}
helper(num);
console.log(final);
}
factorial(5)
答案 0 :(得分:0)
您的阶乘函数确实不返回任何内容。
您正在执行console.log
以打印该值,并且末尾没有“返回”等同于具有隐式return undefined
。
您的浏览器控制台将输出该函数的返回值,这就是为什么您可能感到困惑的原因。
使用return final
代替console.log(final);
(或除此以外)
如果您希望阶乘函数实际上返回一个值(以后可以使用)而不是仅仅将其打印到控制台,则将是首选。