可能重複:
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