javascript - 我如何写 || Javascript 中的表达式,其中 0 不被视为虚假值?

标签 javascript

请原谅我的英语。我不是母语人士。

当我写这样的代码时,我的问题就来了

luminosity = settings.luminosity || 50;
opacity = settings.opacity || 100;

问题是 0 应该是一个有效值,但它会被忽略,因为 0 在 Javascript 中是假的,它将设置为默认值|| 的权利。

有没有办法修复 0 不被视为虚假?

我现在正在做

luminosity = "luminosity" in settings ? settings.luminosity : 50;

但我不喜欢那样,因为它太长了。

最佳答案

您需要做的就是编写一个辅助函数...

function ifNotSet(val, other) {
    return typeof val === "undefined" ? other : val;
}

关于javascript - 我如何写 || Javascript 中的表达式,其中 0 不被视为虚假值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11066452/

相关文章:

javascript - 选择文件后立即上传图像

php/mysql 数据库更新后的 Javascript 弹出窗口

javascript - Vuex - 突变后获取状态

javascript - "for (… in …)"循环中的元素顺序

javascript - 控制台在Nodejs中没有方法 'debug'?

javascript - 如何显示小数点后一位(不四舍五入)并为整数显示 .0?

javascript - 客户端应该使用http post还是socket.io将文件上传到我的nodejs服务器?

javascript - 无论如何,是否可以在 Backbone 中绑定(bind)具有 "if"依赖性的事件?

javascript - 有没有办法从 Mongoose 模式中获取所有唯一的数组值?

javascript - Bootstrap 输入标签在达到 maxTags 时显示警报消息