返回和返回false之间的区别

时间:2017-12-01 16:51:15

标签: javascript return

我们在javascript函数中说:

function myfunction (x) {
    if (x===0) {
         return false; //return;
    };
    //some code
};

returnreturn false之间是否存在差异?

我问,因为有人建议我只使用返回(并且他没有解释原因)。

我正在使用它来退出该功能而不做其他任何事情。在这个简单的例子中,我可以使用if (x!==0) {};但是在更长的函数中(告诉我,如果我错了)嵌套if语句不是一个好主意。

3 个答案:

答案 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返回undefinedfalsey

对于大多数用例而言,它并不重要,但是如果你检查它们的类型:

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。否则,如果您使用“空”返回

,它将保持“未定义”