繁体   English   中英

foo 的三元简写? foo : 酒吧

[英]Ternary shorthand for foo ? foo : bar

我意识到我大部分时间都在使用三元运算符,如下所示:

foo ? foo : bar;

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

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

有没有速记或更优雅的方法来做到这一点? 也许ES6ES7

你可以这样写:

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

你也可以累积

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

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

foo || bar;

在检查空值时,我们现在可以使用逻辑空值分配

foo ??= bar

请参阅此答案以了解 nullish 和 falsy 之间的区别。

//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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM