更新资料
Javascript现在支持无效的合并运算符(??)。当其左侧操作数为
null或时
undefined,它返回其右侧操作数,否则返回其左侧操作数。
使用前请检查兼容性。
与C#null合并运算符(
??)等效的Javascript 使用逻辑OR(
||):
var whatIWant = someString || "cookies!";
在某些情况下(以下已说明),该行为与C#的行为不匹配,但这是在Javascript中分配默认/替代值的通用,简洁的方法。
Clarification
无论第一个操作数的类型如何,如果将其强制转换为Boolean都会导致
false,赋值将使用第二个操作数。当心以下所有情况:
alert(Boolean(null)); // falsealert(Boolean(undefined)); // falsealert(Boolean(0)); // falsealert(Boolean("")); // falsealert(Boolean("false")); // true -- gotcha! :)这表示:
var whatIWant = null || new ShinyObject(); // is a new shiny objectvar whatIWant = undefined || "well defined"; // is "well defined"var whatIWant = 0 || 42; // is 42var whatIWant = "" || "a million bucks"; // is "a million bucks"var whatIWant = "false" || "no way"; // is "false"



