如果函数没有返回值,那么它在 if 检查时返回什么?

Jav*_*ega 0 javascript

假设我有一个这样的函数:

checkerFunction() {

  let checker = false;
  // Note here I only do a return if the *if* condition is fulfilled
  if (condition) {
    checker = true;
    return checker;
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我用它作为另一个函数的真/假检查:

anotherFunction() {
 // What will happen here if there's no return from this.checkerFunction()
 if (this.checkerFunction()) {
   somethingHappens;
 }
}
Run Code Online (Sandbox Code Playgroud)

将会发生什么

if (this.checkerFunction())
Run Code Online (Sandbox Code Playgroud)

如果 checkerFunction() 中没有返回,因为条件从来都不是 true...它会被解释为 true/false 还是这将是一个错误,为什么?

Que*_*tin 7

未命中return语句而结束的函数将返回(或者如果它们是,则undefined解析为的承诺)。undefinedasync

undefined是一个假值。

测试起来很简单:

function foo () {
    // Do nothing
};

const result = foo();

if (result) {
    console.log("A true value: ", result);
} else {
    console.log("A false value: ", result);
}
Run Code Online (Sandbox Code Playgroud)