foo的三元速记? foo:酒吧

时间:2015-11-09 09:28:28

标签: javascript ternary-operator shorthand

我意识到我大部分时间都在使用三元运算符:

foo ? foo : bar;

这变得很麻烦,因为可变长度变得很长,例如。克。

appModel.settings.notifications ? appModel.settings.notifications : {};

是否有任何速记或更优雅的方式? 可能是ES6ES7

3 个答案:

答案 0 :(得分:3)

你可以这样写:

var foo = foo || {};
appModel.settings.notifications = appModel.settings.notifications || {};

你也可以累积

options = default.options || foo.options || bar.options || { foo:'bar'};

答案 1 :(得分:1)

您可以简单地使用非按位布尔运算符:

foo || bar;

答案 2 :(得分:0)

在检查空值时,我们现在可以使用 Logical Nullish Assignment:

foo ??= bar

有关 null 和 falsy 之间的区别,请参见 this answer

//these statements are the same for nullish values (null and undefined):

//falsy check
foo = foo ? foo : bar;

//falsy check
foo = foo || bar;

//nullish check
foo ??= bar;