可能重复:
null coalescing operator for javascript?JavaScript的空条件表达式
在C#中,你可以这样做:
var obj = newObject ?? defaultObject;
说,如果没有别的空分配newObject
到obj
分配defaultObject
。我如何写在JavaScript中?
可能重复:
null coalescing operator for javascript?JavaScript的空条件表达式
在C#中,你可以这样做:
var obj = newObject ?? defaultObject;
说,如果没有别的空分配newObject
到obj
分配defaultObject
。我如何写在JavaScript中?
虽然它被认为是一个abusage,你可以做到以下几点:
var obj = newObject || defaultObject;
注意,如果newObject
任何falsy值(如0
或空字符串),defaultObject
将被退回作为obj
的值。考虑到这一点,可能最好使用三元运算符或标准的if语句。
var obj = ("undefined" === typeof defaultObject) ? defaultObject : newObject ;
这是* *略有不同,虽然,因为这将导致'defaultObject'为*任何* 'newObject'的false-y值。也就是说,没有“直接”等价的,所以具有明确相等的三元('??')可以更好地捕获给定的意图... – 2012-05-28 04:34:26
@pst伟大的观点。 – Sampson
falsy表示布尔类型? –
有一个很好的回答这个问题在这里: http://stackoverflow.com/a/476445/1010337 – ActiveDan