假设我有一个这样的函数:
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 还是这将是一个错误,为什么?
未命中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)