返回时无法解释的未定义值

时间:2016-11-12 15:58:04

标签: javascript

我在下面的代码中遇到了一个未定义值的问题,我和我的同事都无法解释:

function reverseFactorial(num) {
  function reverse(altNum, fac){
  console.log(altNum + ', ' + fac);
    if ((altNum / fac) === 1)
            {  
            console.log(fac.toString() + '!');
       return fac.toString() + '!'; 
            }

       else {
       reverse(altNum / fac, fac + 1);
       }
  }
  var ret = reverse(num, 1);
  console.log(ret);
  return ret;
}

示例输入可以是:reverseFactorial(120)

然后日志会显示:

  

120,1

     

120,2

     

60,3

     

20,4

     

5,5

     

5!

     

未定义

1 个答案:

答案 0 :(得分:0)

reverse函数并不总是返回值:else {大小写没有返回语句。

您可能指的是return reverse(altNum / fac, fac + 1);区块中的else