我有一个函数可能返回一个值或者可能返回null,我想将它分配给一个变量。所以目前我已经
了someVar = (someFun())
? someFun()
: "foo";
是否有一种缩短的方式,我不必两次调用该函数,或添加一个额外的变量,如:
funResult = someFun();
someVar = (funResult)
? funResult
: "foo";
基本上是这样的:
someVar = someFun() | "foo"
答案 0 :(得分:1)
习惯的方式是
someVar = someFun() || "foo";
||
运算符会产生左手表达式的值,如果它的真实性。如果没有,它将继续评估右侧,并返回其值。
对于那些不熟悉术语" truthy"的人来说,在JavaScript中,它意味着语言不认为隐含false
的值。隐式false
值为0
,NaN
,false
(当然),""
,null
和undefined
。任何对象的引用,即使它完全是空的,也被认为是" truthy"。
在您的具体示例中,首选||
方法,因为这意味着您只需拨打someFun()
一次。