26

我喜欢 PHP 对“短三元”的支持,省略了第二个表达式:

// PHP

$foo = 'hello';
$bar = '';

echo $foo ?: 'world'; // hello
echo $bar ?: 'world'; // world

Javascript 是否支持这样的语法?我试过?:导致语法错误。我知道布尔短路,但这对于我目前正在做的事情是不可行的;那是:

// Javascript

var data = {
    key: value ?: 'default'
};

有什么建议么?(我可以将它包装在一个立即调用的匿名函数中,但这似乎很愚蠢

4

3 回答 3

49
var data = {
    key: value || 'default'
};
于 2011-09-14T04:42:33.310 回答
16

是的,使用||. 与 PHP 不同,JavaScript 的||运算符将返回第一个非假值,而不是规范化的布尔值。

foo || 'world'
于 2011-09-14T04:43:04.777 回答
0
var myFunc = function(foo) {
  foo = foo || 'my default value for foo';
}
于 2013-12-20T11:15:38.630 回答