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
值是 0
、NaN
、false
(当然)、""
、null
和 undefined
。对对象的任何引用,即使它完全是空的,也被认为是 "truthy".
在您的具体示例中,首选 ||
方法,因为这意味着您只调用 someFun()
一次。
我有一个函数可能 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
值是 0
、NaN
、false
(当然)、""
、null
和 undefined
。对对象的任何引用,即使它完全是空的,也被认为是 "truthy".
在您的具体示例中,首选 ||
方法,因为这意味着您只调用 someFun()
一次。