为什么此代码返回未定义

Why is this code returning undefined?

本文关键字:未定义 返回 代码 为什么      更新时间:2023-09-26

为什么此函数返回未定义?结果显然有一个非null值,并且调用在打印所需输出时正在输入第一个if语句。

function Swap(str, result) {
    if (str == "") {
      console.log(result); 
      return result;
    }
    else if (str[0] == str.toUpperCase().substring(0,1)) {
      var newResult = result + str.toLowerCase().substring(0,1);
      Swap(str.replace(str[0], ""), newResult);
    }
    else {
      var newResult = result + str.toUpperCase().substring(0,1);
      Swap(str.replace(str[0], ""), newResult);
    }
   }
console.log(Swap("HelloW",""));

调用Swap("HelloW", "")将进入第二个if大小写(str以大写字母开头),它调用Swap("elloW", "h"),并且不返回任何东西。另外两个分支也需要return,而不仅仅是第一个分支。