获取实际的输出JavaScript后我变得不确定

时间:2019-01-09 10:16:03

标签: javascript recursion

每次我运行此代码时,我都会得到输出,但有了该输出 我也会得到未定义的内容,该未定义的内容表示什么

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)

1 个答案:

答案 0 :(得分:0)

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

您正在执行console.log以打印该值,并且末尾没有“返回”等同于具有隐式return undefined

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

使用return final代替console.log(final);(或除此以外)

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