javascript空条件表达式
可能重复:javascript空条件表达式,javascript,operators,null-coalescing-operator,Javascript,Operators,Null Coalescing Operator,可能重复: 在C#中,您可以执行以下操作: var obj = newObject ?? defaultObject; 这表示将newObject分配给obj如果不为空,则分配defaultObject。如何用javascript编写此代码?虽然它被认为是一种滥用,但您可以执行以下操作: var obj = newObject || defaultObject; 请注意,如果newObject具有任何错误值(例如0或空字符串),defaultObject将作为obj的值返回。考虑到这一点,
在C#中,您可以执行以下操作:
var obj = newObject ?? defaultObject;
这表示将newObject
分配给obj
如果不为空,则分配defaultObject
。如何用javascript编写此代码?虽然它被认为是一种滥用,但您可以执行以下操作:
var obj = newObject || defaultObject;
请注意,如果newObject
具有任何错误值(例如0
或空字符串),defaultObject
将作为obj
的值返回。考虑到这一点,最好使用三元运算符或标准if语句
var obj = ( "undefined" === typeof defaultObject ) ? defaultObject : newObject ;
但这略有不同,因为它将导致
newObject
的任何false-y值出现defaultObject
。也就是说,不存在“直接”等价物,因此具有显式等式的三元(??
)可能更好地捕捉给定意图…@Lolcoder布尔假
是实际假。Falsy值可能是数字0
,或者是空字符串。@pst-虽然我同意你的观点,但我要指出,如果你事先知道defaultObject
实际上是一个对象,那么它就永远不会是Falsy。这里有一个很好的答案来回答这个问题: