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

标签 javascript syntax syntactic-sugar

<分区>

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

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

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

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

基本上,是这样的:

someVar = someFun() | "foo"

最佳答案

惯用的方式是

someVar = someFun() || "foo";

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

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

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

关于Javascript - 如果第一个值不真实,则将另一个值分配给变量的简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49396746/

相关文章:

javascript - JavaScript 中的运算符重载

scala - :_* convert ordered collections into variable arg lists? 怎么样

javascript - 在浏览器中,我可以获得鼠标指向的图像颜色吗?

javascript - 如何使用 Puppeteer 和 Headless Chrome 通过文本选择元素

javascript - 使用数学优化使用 jQuery 修改 CSS 值的语法

syntax - YAML中序列中的多行

javascript - 如何获取 ISP 名称?

javascript - php : writing a script function

Python - 许多方法,但差异很小

syntax - 非 Lisp 语言中有哪些宏系统?