javascript - 如何在 JavaScript 中设置默认 boolean 值?

标签 javascript boolean

在 JavaScript 中设置默认可选值通常是通过 || 字符完成的

var Car = function(color) {
  this.color = color || 'blue';
};

var myCar = new Car();
console.log(myCar.color); // 'blue'

var myOtherCar = new Car('yellow');
console.log(myOtherCar.color); // 'yellow'

之所以可行,是因为 colorundefinedundefined || String 始终是 String。当然,这也适用于 String || 的另一种方式undefinedString。当出现两个 Strings 时,第一个胜出 'this' || 'that''this'。它不作为 'that' || 反过来工作'this''that'

问题是:如何使用 boolean 值实现同样的效果?

举个例子

var Car = function(hasWheels) {
  this.hasWheels = hasWheels || true;
}

var myCar = new Car();
console.log(myCar.hasWheels); // true

var myOtherCar = new Car(false)
console.log(myOtherCar.hasWheels); // ALSO true !!!!!!

对于 myCar 它有效,因为 undefined || truetrue 但如您所见,它不适用于 myOtherCar 因为 false || truetrue。更改顺序无济于事,因为 true || false 仍然是 true

因此,我是不是遗漏了什么,或者以下是设置默认值的唯一方法吗?

this.hasWheels = (hasWheels === false) ? false: true

干杯!

最佳答案

你可以这样做:

this.hasWheels = hasWheels !== false;

除非 hasWheels 明确为 false,否则这将为您提供 true 值。 (其他虚假值,包括 nullundefined,将导致 true,我认为这就是您想要的。)

关于javascript - 如何在 JavaScript 中设置默认 boolean 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15464169/

相关文章:

javascript - 删除 Javascript 生成的 HTML

javascript - 如何用取消停止可排序事件

javascript - 脚本不使用 jquery 打印

python - 如何在 python 交互模式下撤消 True = False?

ruby-on-rails - Rails 3 find 命令不适用于 postgresql 数据库

javascript - 仅针对特定的 li 元素显示一个按钮和删除线

javascript - 侧边导航 Bootstrap

php - 有没有办法从 PHP 中的 boolean 值中获取 "true"/"false"字符串值?

c - "true"(小写)是否已经是 Visual Studio 中的关键字?它可以被覆盖吗?

java - 如何避免在这个 Java bool 方法中检查井字棋游戏是否结束,而不是对每种可能的情况进行硬编码?