我们在javascript函数中说:
function myfunction (x) {
if (x===0) {
return false; //return;
};
//some code
};
return
或return false
之间是否存在差异?
我问,因为有人建议我只使用返回(并且他没有解释原因)。
我正在使用它来退出该功能而不做其他任何事情。在这个简单的例子中,我可以使用if (x!==0) {};
但是在更长的函数中(告诉我,如果我错了)嵌套if语句不是一个好主意。
答案 0 :(得分:3)
考虑一下这段代码
function myFunc(){
return; // exists function and returns `undefined`
}
const myVar = myFunc() // myVar === undefined
和false
function myFunc(){
return false; // exists function and returns `false`
}
const myVar = myFunc() // myVar === false
你们两个都会这样:
if (!myFunc()) { console.log('this gets executed if falsy value is passed') }
因此,对于这个用例,它们几乎相同(请注意,如果您与===
进行任何其他类型的比较,这是不同的故事),您应该使用哪一个?
我建议总是返回一些内容,在本例中为false
,因为如果您的函数没有return
语句,那么它将始终返回undefined
。因此,为了便于调试,最好返回false
而不是undefined
,因为您将立即知道返回语句确实已执行,而使用undefined
时,您还需要再检查1个步骤。
答案 1 :(得分:1)
return false
返回false
return
返回undefined
(falsey
)
对于大多数用例而言,它并不重要,但是如果你检查它们的类型:
typeof undefined //returns "undefined"
typeof false //returns "boolean"
它只是不同的类型。
此外:
undefined === false //identity check returns false
undefined == false //equality returns true
我找不到理由偏爱另一个。
答案 2 :(得分:1)
var value = myfunction(0)
如果您使用return false,则 value
将等于false
。否则,如果您使用“空”返回