Boolean类型 – 学习画板

首页 » JavaScript » Boolean类型

Boolean类型

Boolean类型是与布尔值对应的引用类型。要创建Boolean对象,可以像下面这样调用Boolean构造函数并传入ture或false值:

var booleanObject = new Boolean(true);

Boolean类型的实例重写了valueOf()方法,返回基本类型值true或false;重写了toString()方法,返回字符串“true”或“false”。可是,Boolean对象在ECMAScript中的用处不大,因为它经常造成人们的误解。其中最常见的问题就是在布尔表达式中使用Boolean对象,例如:

var falseObject = new Boolean(false);
var result = falseObject && ture;
alert(result);    //true
var falseValue = false;
result = falseValue && true;
alert(result);    //false

在这个例子中,我们使用false值创建了一个Boolean对象。然后,将这个对象与基本类型值true构成了逻辑表达式。在布尔运算中,false && true等与false。可以,示例中的这行代码是对falseObject而不是对它的值(false)进行求值。前面讨论过,布尔表达式中所有对象都会被转换为true,因此falseObject对象布尔表达式中代表的是true.结果,true && true 当然就等于true了。

基本类型与引用类型的布尔值还有两个区别。首先typeOf操作符对基本类型返回“boolean”,而对引用类型返回“object”。其次,由于Boolean对象是Boolean类型的实例
,所以使用instancefo运算符测试Boolean对象返回true,而测试基本类型的布尔值则返回false。例如:

alert(typeof falseObject);                //object
alert(typeof falseValue);                 //boolean
alert(falseObject instanceof Boolean);    //true
alert(falseValue instanceof Boolean);     //false

理解基本类型的布尔值与Boolean对象之间的区别非常重要——当饭,我们建议是永远不要使用Boolean对象。

此文章发表在 JavaScript 标签为 . 将固定链接加入收藏.