Javascript 设置变量以返回函数值或false

Javascript 设置变量以返回函数值或false,javascript,Javascript,我不知道这个问题的标题该怎么说,但我直接跳了进去 使用?:运算符I设置JavaScript变量和if语句,如下所示: var test=callsAFunction?测试:假 如果我这样做,test会等于函数在这里返回的值吗?或者它是未定义的,因为它“技术上”还没有设置 我要做的是将一个变量设置为它返回的数据和通过函数运行的数据,或者将它设置为Boolean false,这样它将通过布尔检查作为错误进行处理。我认为这种方法是最好的,但我在决定如何进行时遇到了一些问题。下面是我的代码片段: var

我不知道这个问题的标题该怎么说,但我直接跳了进去

使用
?:运算符
I设置JavaScript变量和if语句,如下所示:

var test=callsAFunction?测试:假

如果我这样做,test会等于函数在这里返回的值吗?或者它是未定义的,因为它“技术上”还没有设置

我要做的是将一个变量设置为它返回的数据和通过函数运行的数据,或者将它设置为Boolean false,这样它将通过布尔检查作为错误进行处理。我认为这种方法是最好的,但我在决定如何进行时遇到了一些问题。下面是我的代码片段:

var hash = self.getHashFromMasterRecords(d[0]);

if(hash === false){
                done("Can't find master record hash", self.requestData, self);
            }
显然,它需要将布尔值改为false才能作为错误传递。我想这样做,而不必为这个序列调用函数超过1次

那么,如果我执行
var hash=self.getHashFromMasterRecords(d[0])?散列:剥皮散列会返回值吗?还是未定义

提前感谢您,如果我需要发布更多信息,请告诉我。

语法:

var a = (b) ? c : d;
如果
b
的计算结果为真,则将
a
设置为等于
c
,如果
b
的计算结果为假,则将
d
设置为等于
c
。如果我理解正确,您希望将变量设置为函数的返回值,如果该函数失败,请将其设置为某个默认值。为此,请使用
|

var a = b() || 'error occurred!';
在上面的一行中,如果
b()
的计算结果是错误的,
a
将获得
error executed的值。如果
b()

var a = (b) ? c : d;
如果
b
的计算结果为真,则将
a
设置为等于
c
,如果
b
的计算结果为假,则将
d
设置为等于
c
。如果我理解正确,您希望将变量设置为函数的返回值,如果该函数失败,请将其设置为某个默认值。为此,请使用
|

var a = b() || 'error occurred!';
在上面的一行中,如果
b()
的计算结果是错误的,
a
将获得
error executed的值。如果
b()

var a = (b) ? c : d;
如果
b
的计算结果为真,则将
a
设置为等于
c
,如果
b
的计算结果为假,则将
d
设置为等于
c
。如果我理解正确,您希望将变量设置为函数的返回值,如果该函数失败,请将其设置为某个默认值。为此,请使用
|

var a = b() || 'error occurred!';
在上面的一行中,如果
b()
的计算结果是错误的,
a
将获得
error executed的值。如果
b()

var a = (b) ? c : d;
如果
b
的计算结果为真,则将
a
设置为等于
c
,如果
b
的计算结果为假,则将
d
设置为等于
c
。如果我理解正确,您希望将变量设置为函数的返回值,如果该函数失败,请将其设置为某个默认值。为此,请使用
|

var a = b() || 'error occurred!';

在上面的一行中,如果
b()
的计算结果是错误的,
a
将获得
error executed的值。如果
b()。只要函数在返回时返回错误值,就可以使用or(
|
)运算符:

var hash = self.getHashFromMasterRecords(d[0]) ?? false;

尽管如此,如果这是一个具体的例子,那么上面的代码几乎没有什么价值,因为仅仅存储函数的结果就已经有了一个错误的值。

它将是未定义的。只要函数在返回时返回错误值,就可以使用or(
|
)运算符:

var hash = self.getHashFromMasterRecords(d[0]) ?? false;

尽管如此,如果这是一个具体的例子,那么上面的代码几乎没有什么价值,因为仅仅存储函数的结果就已经有了一个错误的值。

它将是未定义的。只要函数在返回时返回错误值,就可以使用or(
|
)运算符:

var hash = self.getHashFromMasterRecords(d[0]) ?? false;

尽管如此,如果这是一个具体的例子,那么上面的代码几乎没有什么价值,因为仅仅存储函数的结果就已经有了一个错误的值。

它将是未定义的。只要函数在返回时返回错误值,就可以使用or(
|
)运算符:

var hash = self.getHashFromMasterRecords(d[0]) ?? false;

尽管如此,如果这是一个具体的例子,那么上面的代码几乎没有什么价值,因为仅仅存储函数的结果就已经有了错误的值。

您尝试过吗?反正
var hash=self.getHashFromMasterRecords(d[0])| | false
可能就是你要找的东西这就是我一直在想的,但我一时想不出来。谢谢你,先生。你试过了吗?反正
var hash=self.getHashFromMasterRecords(d[0])| | false
可能就是你要找的东西这就是我一直在想的,但我一时想不出来。谢谢你,先生。你试过了吗?反正
var hash=self.getHashFromMasterRecords(d[0])| | false
可能就是你要找的东西这就是我一直在想的,但我一时想不出来。谢谢你,先生。你试过了吗?反正
var hash=self.getHashFromMasterRecords(d[0])| | false
可能就是你要找的东西这就是我一直在想的,但我一时想不出来。谢谢你,先生。谢谢你的澄清,我一直在想这些问题,但没有完全说清楚。谢谢你的澄清,我一直在想这些问题,但没有完全说清楚