javascript-我可以';我不明白,为什么前两个函数返回';未定义';但是第三个返回所需的值?

javascript-我可以';我不明白,为什么前两个函数返回';未定义';但是第三个返回所需的值?,javascript,undefined,return-type,Javascript,Undefined,Return Type,Addy(int c):用于将数字的所有数字相加,并仅在其为一位数字时重复求和的函数。否则,重复这个过程 直到它成为一个单一的数字 第一个功能: 我想知道为什么前两个函数返回“undefined”而不是返回一位数字 首先,第三个函数与第二个函数不同 第一个功能 固定代码: 函数addy(c){ c=parseInt(c); var sum=0;//第三个函数与第二个函数不同您的控制台.log显示了什么?第二个和第三个函数中应用的逻辑是相同的。(我的实际意思!) function addy(c)

Addy(int c):用于将数字的所有数字相加,并仅在其为一位数字时重复求和的函数。否则,重复这个过程 直到它成为一个单一的数字

第一个功能:

我想知道为什么前两个函数返回“undefined”而不是返回一位数字


首先,第三个函数与第二个函数不同

第一个功能

固定代码:

函数addy(c){
c=parseInt(c);

var sum=0;//第三个函数与第二个函数不同您的
控制台.log显示了什么?第二个和第三个函数中应用的逻辑是相同的。(我的实际意思!)
function addy(c) {
  c = parseInt(c);
  console.log('Recieved Number '+c);
  var sum;
  var nas = c.toString().split(''); // nas --> Number As String.
  console.log('Digits present in Number: '+nas);
  for (var i = 0; i < nas.length; i++) {
    sum = sum + parseInt(nas[i]);
  }
  console.log('Sum is: '+sum);
  if(sum < 9) {
    console.log(typeof sum);
    console.log('value of sum is: '+ sum);
    return sum;
  }
  console.log('Value Still not single digit.');
  addy(sum);
}
  function addy(c){
     var s=0;
     while(c!==0)
     {
       s = s + parseInt(c%10);

       c = parseInt(c/10);
     }
     if(s>9)
     {
       s = addy(s);
     }
     else if(s<9)
     {
       return s;
     }
   }
   function addy(num)
   {
    var sum = 0;

    while (num > 0)
   {
      sum += parseInt(num % 10);

      num = parseInt(num / 10);
   }
   if (sum > 9)
   {
      sum = addy(sum);
   }
     return sum;
   }