Javascript是否支持PHP中的短三元组(而不是变体)?

时间:2011-09-14 04:39:25

标签: php javascript ternary-operator short-circuiting

我已经厌倦了PHP对“短三元”的支持,省略了第二个表达式:

// PHP

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

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

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

// Javascript

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

有什么建议吗? (我可以将它包装在一个立即调用的匿名函数中,但这看起来很傻

3 个答案:

答案 0 :(得分:44)

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

答案 1 :(得分:15)

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

foo || 'world'

答案 2 :(得分:0)

var myFunc = function(foo) {
  foo = foo || 'my default value for foo';
}