Javascript return和return false之间的差异
假设在javascript函数中,我有:Javascript return和return false之间的差异,javascript,return,Javascript,Return,假设在javascript函数中,我有: function myfunction (x) { if (x===0) { return false; //return; }; //some code }; return与return false之间有区别吗 我这样问是因为有人建议我使用justreturn(但他没有解释原因) 我用它来退出函数,什么也不做。在这个简单的例子中,如果(x!==0){},我可以使用但在较长的函数中(告诉我是否我错了),使用嵌套
function myfunction (x) {
if (x===0) {
return false; //return;
};
//some code
};
return
与return false
之间有区别吗
我这样问是因为有人建议我使用justreturn(但他没有解释原因)
我用它来退出函数,什么也不做。在这个简单的例子中,如果(x!==0){},我可以使用
代码>但在较长的函数中(告诉我是否我错了),使用嵌套的if语句可能不是一个好主意 返回false
返回false
function myFunc(){
return false; // exists function and returns `false`
}
const myVar = myFunc() // myVar === false
返回
返回未定义
(即错误
)
对于大多数用例来说,这并不重要,但是如果您检查它们的类型:
typeof undefined //returns "undefined"
typeof false //returns "boolean"
只是不同的类型
此外:
undefined === false //identity check returns false
undefined == false //equality returns true
我找不到一个比另一个更喜欢的理由。返回false
返回false
function myFunc(){
return false; // exists function and returns `false`
}
const myVar = myFunc() // myVar === false
返回
返回未定义
(即错误
)
对于大多数用例来说,这并不重要,但是如果您检查它们的类型:
typeof undefined //returns "undefined"
typeof false //returns "boolean"
只是不同的类型
此外:
undefined === false //identity check returns false
undefined == false //equality returns true
我找不到一个比另一个更喜欢的理由。
var value = myfunction(0)
如果使用return false,则value
将等于false
。否则,如果使用“空”返回,它将保持“未定义”
var value = myfunction(0)
如果您使用返回false,则代码>值> <代码>将等于<代码> false <代码>。否则,如果您使用“空”返回 它将保持“未定义”。
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
在两个CAE中,这将是相同的:
if (!myFunc()) { console.log('this gets executed if falsy value is passed') }
因此,对于这个用例,它们几乎是相同的(请注意,如果您与===
进行任何其他类型的比较,情况就不同了),那么您更喜欢使用哪一种呢
我建议总是返回一些东西,在这种情况下是false
,因为如果函数没有return
语句,那么它将总是返回undefined
。因此,为了便于调试,最好返回false
而不是undefined
,因为您很快就会知道return语句确实执行了,而对于undefined
,您还有一个步骤要检查 > P> >考虑此代码
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
在两个CAE中,这将是相同的:
if (!myFunc()) { console.log('this gets executed if falsy value is passed') }
因此,对于这个用例,它们几乎是相同的(请注意,如果您与===
进行任何其他类型的比较,情况就不同了),那么您更喜欢使用哪一种呢
我建议总是返回一些东西,在这种情况下是false
,因为如果函数没有return
语句,那么它将总是返回undefined
。因此,为了便于调试,最好返回false
而不是undefined
,因为您很快就会知道return语句确实执行了,而对于undefined
,您还有一个步骤要检查 return
返回undefined
(或void 0
)(void),而return false
精确返回false
(布尔值)。两者都是falsy()值,但它们实际上是不同的。无论如何,在您的情况下,没有任何区别,这在很大程度上取决于函数的使用情况,在大多数情况下(如果不是所有情况下)函数仍可能按预期工作。如果您只想退出函数,这一点都不重要。return
returnsundefined
(或void 0
)(void),而返回false
则精确返回false
(布尔值)。两者都是falsy()值,但它们实际上是不同的。无论如何,在您的情况下,没有任何区别,这在很大程度上取决于函数的使用情况,在大多数情况下(如果不是所有情况下)仍然可能按预期工作。如果您只想退出函数,这一点都不重要。