调用自身的函数不会返回true

Sim*_* S. 3 javascript

我调用一个函数"returnsTrue",当参数"redo"设置为true时,它调用自身.然后我回想起相同的函数"returnsTrue",参数"redo"设置为false,我想返回true.但实际上我只能得到"未定义".

我真的不明白这里发生了什么:

function returnsTrue(redo){
    if(redo){
    console.log('Restart Function');
    returnsTrue(false);
  }else{
    console.log('It returns true');
    return true;
  }
}

if(returnsTrue(true)){
    console.log('1');
}else{
    console.log('2');
}

var isTrue = returnsTrue(true);
console.log(isTrue);
// is undefined
Run Code Online (Sandbox Code Playgroud)

检查https://jsfiddle.net/8820r2ug/

Que*_*tin 6

if声明有两个分支.

这两个分支中只有一个包含一个return声明.

如果它命中if(而不是else)那么就没有return语句而且它会返回undefined.

您需要在/ returnif一侧添加一个语句.ifelse

  • 换句话说,在if语句中使用`return returnsTrue(false);`而不是`returnsTrue(false);` (2认同)