javascript - 使用逻辑运算符分配一个值或 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;
但我想知道是否有更好的解决方案。处理这种情况的最佳方法是什么?
解决方案
是的,||
检查第一个操作数是否为假(false
当强制为布尔值时),0
就是这样。
如果您只想检查null
,undefined
您可以使用nullish-coalescing 运算符:
const qux = foo ?? bar;
如果要准确检查undefined
,则应像以前一样使用条件运算符。
推荐阅读
- typescript - 打字稿:什么是异步函数定义语法?
- python - 如何在 docker selenium 中设置下载目录
- rspec-rails - Mysql2::Error: MySQL 客户端未连接
- google-cloud-platform - Google Cloud Platform:项目出现在结算报告中,但未显示在项目列表中
- javascript - 从 JS 类中获取字段(属性)初始值
- c++ - 修剪 istream 的结尾
- python - 如何在 Tkinter 中使标签背景透明?
- arrays - where子句包含数组列时如何选择匹配的记录?
- reactjs - React onClick 不适用于列表项
- ios - 使用图表绘制动态数据的推荐方式是什么