javascript null conditional expression
Possible Duplicate:
null coalescing operator for javascript?
在C中,您可以这样做:
1
| var obj = newObject ?? defaultObject; |
也就是说,如果不为空,则将newObject分配给obj,否则分配defaultObject。我该如何用javascript编写它?
- 这里有一个很好的答案:stackoverflow.com/a/476445/1010337
虽然它被认为是一个abusage,但您可以执行以下操作:
1
| var obj = newObject || defaultObject; |
注意,如果newObject有任何错误值(如0或空字符串),defaultObject将作为obj的值返回。考虑到这一点,最好使用三元运算符或标准if语句。
1
| var obj = ("undefined" === typeof defaultObject ) ? defaultObject : newObject ; |
- 不过,这略有不同,因为它会导致defaultObject对于newObject的任何假y值。也就是说,没有"直接"等价物,因此具有显式相等性的三元(??)可能更好地捕获给定的意图…
- @太平洋标准时间要点。
- falsy表示布尔型?
- @lolcoder布尔型false是一个实际错误。错误的值可能是数字0或空字符串。
- @pst-虽然我同意你的观点,但我要注意的是,如果你事先知道defaultObject实际上是一个对象,那么它永远不会是错误的。
- @nnnnnn有效点。