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

我的问题出在我写这样的代码时

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

10-06 00:19