【问题标题】:javascript null conditional expression [duplicate]javascript空条件表达式[重复]
【发布时间】:2012-06-02 12:13:40
【问题描述】:

可能重复:
null coalescing operator for javascript?

在 C# 中,您可以这样做:

var obj = newObject ?? defaultObject;

这表示将newObject 分配给obj,如果不为空,则分配defaultObject。用javascript怎么写?

【问题讨论】:

标签: javascript operators null-coalescing-operator


【解决方案1】:

虽然它被视为一种滥用,但您可以执行以下操作:

var obj = newObject || defaultObject;

请注意,如果newObject 是任何falsy 值(例如0 或空字符串),则defaultObject 将作为obj 的值返回。考虑到这一点,最好使用三元运算符或标准 if 语句。

var obj = ( "undefined" === typeof defaultObject ) ? defaultObject : newObject ;

【讨论】:

  • 略有不同,因为它将导致defaultObject for any false-y 值为newObject。也就是说,没有“直接”等价物,因此具有显式相等性的三元 (??) 可能会更好地捕捉给定意图......
  • @Lolcoder 布尔值false 是一个实际的错误。 Falsy 值可以是数字 0 或空字符串。
  • @pst - 虽然我同意你的观点,但我要注意,如果你事先知道defaultObject 实际上是一个对象,那么它永远不会是虚假的。跨度>
猜你喜欢
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-20
  • 1970-01-01
  • 2020-05-28
  • 2018-08-27
  • 1970-01-01
相关资源
最近更新 更多