【问题标题】:Return the value checked for in a ternary condition in Javascript返回在 Javascript 中以三元条件检查的值
【发布时间】:2021-01-14 17:24:23
【问题描述】:

是否有可能发生以下情况。所以基本上我想检查a 是否存在或已定义或不为0,如果是则返回该值,否则返回0。它甚至可以作为单个语句 - 我不想使用备用变量。

console.log(a ? a : 0)

嗨!正如 cmets 中的人所指出的那样。 我的问题是 - 有什么方法可以简化上述表达式。我不想使用变量 a 两次。出于这个原因,您可以假设 a 是一个返回数字的长时间执行函数。所以,我只想使用一次

【问题讨论】:

  • 您当前的陈述有什么问题?你试过运行它吗?
  • 你试过执行你的猜测吗?
  • 嗨!我已经运行它了。但我想要一个更简单的表达方式
  • 我将使用新的更新进行编辑。对不起
  • @ScottMarcus 你有答案吗?

标签: javascript conditional-operator


【解决方案1】:

是的,有可能:

console.log(a || 0);

|| 运算符将左操作数 (a) 强制转换为 boolean 类型,如果是 true 则返回它。否则返回右操作数 (0)。
注意如果 a 是空字符串,它也将返回 0。

或者:

console.log(a ?? 0);

Nullish coalescing operator?? 是最近的一项功能,用于测试左操作数(在本例中为 a)是否既不 undefined 也不 @987654331 @ 并返回它。否则返回正确的操作数(本例中为0

【讨论】:

  • …虽然根据用例的不同,a ?? 0 可能会更好
  • 嗨! Amit 看起来可能有用。我会试试看。非常感谢。
  • @Bergi 你是对的,因为他想返回零。不错!
  • @Bergi 你能提一下你想到的a ?? 0 的用例吗?我不明白那个表达。以后可能有用。谢谢。
  • @RohanAsokan 嘿,它是无效的合并运算符more here
猜你喜欢
  • 2021-09-21
  • 1970-01-01
  • 1970-01-01
  • 2018-06-03
  • 2019-02-13
  • 2016-08-03
  • 2012-07-20
  • 2022-01-04
  • 1970-01-01
相关资源
最近更新 更多