【问题标题】:Javascript - succinct way to assign another value to variable if first value is not truthy [duplicate]Javascript-如果第一个值不真实,则为变量分配另一个值的简洁方法[重复]
【发布时间】:2018-08-30 00:10:12
【问题描述】:

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

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

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

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

基本上是这样的:

someVar = someFun() | "foo"

【问题讨论】:

  • TIL 什么是“空合并”。

标签: javascript syntax syntactic-sugar


【解决方案1】:

惯用的方式是

someVar = someFun() || "foo";

|| 运算符将产生左侧表达式的值,如果它是真的。如果不是,它将继续评估右侧,并返回其值。

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

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

【讨论】:

  • 您可能想强调“不真实”不仅仅是null
  • @Bergi 我想过,但 OP 似乎“明白了”;但是对于后代来说,这绝对是个好主意。
  • 我知道语法很熟悉。我只是错过了一个|
猜你喜欢
  • 1970-01-01
  • 2021-01-01
  • 2016-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
相关资源
最近更新 更多