首页 > 解决方案 > 获得实际输出 JavaScript 后,我​​变得不确定

问题描述

每次我运行这段代码时,我都会得到输出,但是有了那个输出,我也会得到未定义的未定义表示什么

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)

标签: javascriptrecursion

解决方案


您的阶乘函数确实没有返回任何内容。

您正在执行 aconsole.log来打印值,并且末尾没有“return”相当于具有隐含的return undefined.

您的浏览器控制台会输出函数的返回值,这就是您可能感到困惑的原因。

代替return final(或补充)您的console.log(final);

如果您希望您的阶乘函数实际返回一个值(您可以稍后使用)而不是仅将其打印到控制台,那将是首选。


推荐阅读