Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript return和return false之间的差异_Javascript_Return - Fatal编程技术网

Javascript return和return false之间的差异

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){},我可以使用但在较长的函数中(告诉我是否我错了),使用嵌套

假设在javascript函数中,我有:

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
returns
undefined
(或
void 0
)(void),而
返回false
则精确返回
false
(布尔值)。两者都是falsy()值,但它们实际上是不同的。无论如何,在您的情况下,没有任何区别,这在很大程度上取决于函数的使用情况,在大多数情况下(如果不是所有情况下)仍然可能按预期工作。如果您只想退出函数,这一点都不重要。