首页 > 解决方案 > 使用逻辑运算符分配一个值或 0,否则分配替代

问题描述

所以双管道||逻辑 OR 运算符

我想创建一个函数,它可以是foo,或者当那是flase(或falsy?)时,它应该使用默认的后备。在这种情况下,“酒吧”。

const foo = 0;
const bar = 'somethingElse';

const qux = foo || bar;

console.log(qux); // returns 'somethingElse'

现在,除非 foo 为 0,否则上面的示例将起作用。因为 JS 会解释它是假的。

现在以下似乎正在工作:

// ...
const qux = typeof foo !== 'undefined' ? foo : bar;

但我想知道是否有更好的解决方案。处理这种情况的最佳方法是什么?

标签: javascript

解决方案


是的,||检查第一个操作数是否为假false当强制为布尔值时),0就是这样。

如果您只想检查nullundefined您可以使用nullish-coalescing 运算符

const qux = foo ?? bar;

如果要准确检查undefined,则应像以前一样使用条件运算符。


推荐阅读