<分区>
我有一个可能返回值或可能返回 null 的函数,我想将它分配给一个变量。所以现在我有
someVar = (someFun())
? someFun()
: "foo";
有没有更短的方法,我不必调用函数两次,或者添加一个额外的变量,比如:
funResult = someFun();
someVar = (funResult)
? funResult
: "foo";
基本上,是这样的:
someVar = someFun() | "foo"
<分区>
我有一个可能返回值或可能返回 null 的函数,我想将它分配给一个变量。所以现在我有
someVar = (someFun())
? someFun()
: "foo";
有没有更短的方法,我不必调用函数两次,或者添加一个额外的变量,比如:
funResult = someFun();
someVar = (funResult)
? funResult
: "foo";
基本上,是这样的:
someVar = someFun() | "foo"
最佳答案
惯用的方式是
someVar = someFun() || "foo";
||
运算符将产生左侧表达式的值(如果它为真)。如果不是,它将继续计算右侧,并返回它的值。
对于那些不熟悉术语“真实”的人来说,在 JavaScript 中,它意味着不被语言视为隐式 false
的值。隐含的 false
值为 0
、NaN
、false
(当然)、""
、null
和 undefined
。任何对对象的引用,即使它完全是空的,也被认为是“真实的”。
在您的具体示例中,||
方法是首选,因为这意味着您只调用一次 someFun()
。
关于Javascript - 如果第一个值不真实,则将另一个值分配给变量的简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49396746/