アップデート
JavaScript はnullish 合体演算子 (??)をサポートするようになりました。左側のオペランドがnull
orundefined
の場合は右側のオペランドを返し、それ以外の場合は左側のオペランドを返します。
古い回答
ご使用前に互換性をご確認ください。
C# の null 合体演算子 ( ) に相当する JavaScript??
は、論理 OR ( ||
)を使用しています。
var whatIWant = someString || "Cookies!";
動作が C# の動作と一致しない場合がありますが (以下で説明)、これは JavaScript で既定値/代替値を割り当てる一般的で簡潔な方法です。
明確化
最初のオペランドの型に関係なく、それをブール値にキャストした結果が のfalse
場合、代入では 2 番目のオペランドが使用されます。以下のすべてのケースに注意してください。
alert(Boolean(null)); // false
alert(Boolean(undefined)); // false
alert(Boolean(0)); // false
alert(Boolean("")); // false
alert(Boolean("false")); // true -- gotcha! :)
これの意味は:
var whatIWant = null || new ShinyObject(); // is a new shiny object
var whatIWant = undefined || "well defined"; // is "well defined"
var whatIWant = 0 || 42; // is 42
var whatIWant = "" || "a million bucks"; // is "a million bucks"
var whatIWant = "false" || "no way"; // is "false"