Поддерживает ли Javascript кратковременную (скорее, вариацию), как в PHP? - PullRequest
24 голосов
/ 14 сентября 2011

Я полюбил поддержку PHP для «короткой троицы», опуская второе выражение:

// PHP

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

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

Поддерживает ли Javascript какой-либо синтаксис, подобный этому? Я попытался ?: в результате синтаксической ошибки. Я знаю о логических коротких замыканиях, но это неосуществимо для того, что я сейчас делаю; это существо:

// Javascript

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

Есть предложения? ( Я мог бы обернуть это в немедленно вызванную анонимную функцию, но это кажется глупым )

Ответы [ 3 ]

44 голосов
/ 14 сентября 2011
var data = {
    key: value || 'default'
};
15 голосов
/ 14 сентября 2011

Да, используйте ||. В отличие от PHP, оператор JavaScript || вернет первое не ложное значение, а не нормализованное логическое значение.

foo || 'world'
0 голосов
/ 20 декабря 2013
var myFunc = function(foo) {
  foo = foo || 'my default value for foo';
}
...