Javascript - 如果第一个值不真实,则为链接分配另一个值的简洁方法

时间:2018-03-21 01:29:30

标签: javascript syntax syntactic-sugar

我有一个函数可能返回一个值或者可能返回null,我想将它分配给一个变量。所以目前我已经

someVar = (someFun())
  ? someFun()
  : "foo";

是否有一种缩短的方式,我不必两次调用该函数,或添加一个额外的变量,如:

funResult = someFun();
someVar = (funResult)
  ? funResult
  : "foo";

基本上是这样的:

someVar = someFun() | "foo"

1 个答案:

答案 0 :(得分:1)

习惯的方式是

someVar = someFun() || "foo";

||运算符会产生左手表达式的值,如果它的真实性。如果没有,它将继续评估右侧,并返回其值。

对于那些不熟悉术语" truthy"的人来说,在JavaScript中,它意味着语言不认为隐含false的值。隐式false值为0NaNfalse(当然),""nullundefined。任何对象的引用,即使它完全是空的,也被认为是" truthy"。

在您的具体示例中,首选||方法,因为这意味着您只需拨打someFun()一次。