Javascript—如果第一个值不是truthy,则为变量指定另一个值的简洁方法
我有一个函数,可以返回一个值,也可以返回null,我想把它赋给一个变量。所以现在我有Javascript—如果第一个值不是truthy,则为变量指定另一个值的简洁方法,javascript,syntax,syntactic-sugar,Javascript,Syntax,Syntactic Sugar,我有一个函数,可以返回一个值,也可以返回null,我想把它赋给一个变量。所以现在我有 someVar=(someFun()) ? someFun() :“福”; 有没有一种更简单的方法,我不需要调用函数两次,或者添加一个额外的变量,比如: funResult=someFun(); someVar=(funResult) ? 有趣的结果 :“福”; 基本上是这样的: someVar = someFun() | "foo" 惯用的方式是 someVar = someFun() || "foo"
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似乎“明白了”;不过对后人来说,这绝对是个好主意。我知道语法很熟悉。我只是错过了一个|直到“零合并”意味着什么。