Javascript—如果第一个值不是truthy,则为变量指定另一个值的简洁方法

Javascript—如果第一个值不是truthy,则为变量指定另一个值的简洁方法,javascript,syntax,syntactic-sugar,Javascript,Syntax,Syntactic Sugar,我有一个函数,可以返回一个值,也可以返回null,我想把它赋给一个变量。所以现在我有 someVar=(someFun()) ? someFun() :“福”; 有没有一种更简单的方法,我不需要调用函数两次,或者添加一个额外的变量,比如: funResult=someFun(); someVar=(funResult) ? 有趣的结果 :“福”; 基本上是这样的: someVar = someFun() | "foo" 惯用的方式是 someVar = someFun() || "foo"

我有一个函数,可以返回一个值,也可以返回null,我想把它赋给一个变量。所以现在我有

someVar=(someFun())
? someFun()
:“福”;
有没有一种更简单的方法,我不需要调用函数两次,或者添加一个额外的变量,比如:

funResult=someFun();
someVar=(funResult)
? 有趣的结果
:“福”;
基本上是这样的:

someVar = someFun() | "foo"
惯用的方式是

someVar = someFun() || "foo";
|
操作符将生成左侧表达式的值(如果它是真实的)。如果没有,它将继续计算右侧,并返回其值

对于那些不熟悉术语“truthy”的人来说,在JavaScript中,它意味着语言不认为是隐式
false
的值。隐式的
false
值是
0
NaN
false
(当然),
null
,以及
未定义的
。任何对对象的引用,即使它是完全空的,也被认为是“真实的”


在您的具体示例中,首选
|
方法,因为它意味着您只调用
someFun()
一次。

您可能需要强调,“nottruthy”不仅仅是
null
@Bergi我考虑过这一点,但OP似乎“明白了”;不过对后人来说,这绝对是个好主意。我知道语法很熟悉。我只是错过了一个|直到“零合并”意味着什么。