Javascript - 如果第一个值不真实,将另一个值赋给变量的简洁方法

Javascript - succinct way to assign another value to variable if first value is not truthy

我有一个函数可能 return 一个值或可能 return null,我想将它分配给一个变量。所以现在我有

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

有没有更短的方法,我不必调用函数两次,或者添加一个额外的变量,如:

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

基本上是这样的:

someVar = someFun() | "foo"

惯用的方式是

someVar = someFun() || "foo";

|| 运算符将产生 left-hand 表达式的值(如果它为真)。如果不是,它将继续评估 right-hand 侧,return 它的值。

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

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