Javascript是否像PHP一样支持短三进制(而不是的变体)?


Does Javascript support the short ternary (rather, variation of) as in PHP?

我开始喜欢PHP对"短三元制"的支持,省略了第二个表达式:

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

Javascript支持这样的语法吗?我试过?:导致语法错误。我知道布尔短路,但这对我目前的工作来说是不可行的;:

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

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

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

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

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