默认设置在JavaScript中可选值一般通过||
字符如何在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'
做是因为color
是undefined
和undefined || String
总是String
完成。当然这也是有效的,String || undefined
是String
。当两个Strings
出现时,第一个赢得'this' || 'that'
是'this'
。它不会以其他方式工作,因为'that' || 'this'
是'that'
。
问题是:我怎样才能实现与布尔值相同?
看看下面的例子
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 || true
是true
但你可以看到它不myOtherCar
因为false || true
是true
工作。更改订单没有帮助,因为true || false
仍然是true
。
因此,我错过了什么在这里,或者是下面的唯一方法来设置默认值?
this.hasWheels = (hasWheels === false) ? false: true
干杯!
这很聪明!我喜欢。 – zemirco 2013-03-17 18:05:44
@zeMirco:所以你实际上是要求所有错误的值,除了'false'被认为是'true'?如果是这样,我会想知道为什么你想首先使用'||'。很明显,对“错误”的明确测试将是最简单的解决方案。 – 2013-03-17 18:11:28
@thesystem - 他不想使用'||';它只是将'||'用于非布尔值。我想这个问题已经发布了,因为'||'不是在做需要的东西。 – 2013-03-17 18:13:10