5.6.1 Boolean类型

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

var booleanObject=new Boolean();

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

var falseObject=new Boolean();
var result=falseObject && true;
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类型的实例,所以使用instanceof操作符测试Boolean对象返回true,而测试基本类型的布尔值则返回false,例如:

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

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

时间: 2024-11-10 07:06:14

5.6.1 Boolean类型的相关文章

Boolean类型

Boolean类型是与布尔值对应的引用类型.如果要创建Boolean对象,语法如下: var booleanObject = new Boolean(true); Boolean类型的实例重写了valueOf()方法,返回基本类型true或false:重写了toString()方法,返回字符串"true"和"false". 1.基本类型与引用类型 基本类型本质是boolean类型,而引用类型本质是对象,下面用代码来说明二者区别. 1 <script> 2

javascript类型系统——布尔Boolean类型

× 目录 [1]定义 [2]应用场景 [3]转为布尔[4]实例方法 前面的话 布尔值Boolean类型可能是三种包装对象Number.String和Boolean中最简单的一种.Number和String对象拥有大量的实例属性和方法,Boolean却很少.从某种意义上说,为计算机设计程序就是与布尔值打交道,作为最基本的事实,所有的电子电路只能识别和使用布尔数据.本文将介绍布尔Boolean类型 定义 布尔Boolean类型表示逻辑实体,它只有两个值,保留字true和false,分别代表真和假这两

Java中boolean类型占用多少个字节

为什么要问这个问题,首先在Java中定义的八种基本数据类型中,除了其它七种类型都有明确的内存占用字节数外,就boolean类型没有给出具体的占用字节数,因为对虚拟机来说根本就不存在 boolean 这个类型,boolean类型在编译后会使用其他数据类型来表示,那boolean类型究竟占用多少个字节?带着疑问,随便网上一搜,答案五花八门,基本有以下几种: 1个bit 理由是boolean类型的值只有true和false两种逻辑值,在编译后会使用1和0来表示,这两个数在内存中只需要1位(bit)即可

delphi编程里bool跟boolean类型的区别

原文来自: http://blog.csdn.net/shao9900/article/details/44000825 bool是LongBool类型. Delphi中定义了四种布尔类型:Boolean,ByteBool,WordBool和LongBool.后面三种布尔类型是为了与其他语言兼容而引入的,一般情况下建议使用Boolean类型. 这四种类型的布尔值占用内存的数量如下: Boolean 1 Byte ByteBool 1 Byte WordBool 2 Bytes(1 Word) L

Javascript类型&mdash;&mdash;boolean类型

布尔值在Javascript中有两个值:true和false. 布尔值和其他数据类型的转换关系 数据类型 true false boolean true false String 任何非空字符串 "" Number 任何非零数字(包括正负无穷大,+-Infinity) 0和NaN Object 任何对象 null Undefined 无 undefined 转换方法是Boolean()方法. 在进行逻辑运算时,计算值会按照Boolean()的方法进行转换. Javascript类型——

学习小记:JS判断时特殊值与boolean类型的转换

扒开JQuery以及其他一些JS框架源码,常常能看到下面这样的判断, 写惯了C#高级语言语法的我,一直以来没能系统的理解透这段代码. var test; //do something... if(test){ //do something... } 此处就系统的记录一下这个JS特殊值与boolean类型的转换,测试代码与结果如下 window.onload = function () { var minusNum = -1; var zero = 0; var one = 1; var stri

Java中boolean类型到底占用多少字节

虽然 Java 虚拟机定义了 boolean 这种数据类型,但是只对它提供了非常有限的支持.在 Java 虚拟机中没有任何供 boolean 值专用的字节码指令,在 Java 语言之中涉及到 boolean 类型值的运算,在编译之后都使用 Java 虚拟机中的 int 数据类型来代替. Java 虚拟机直接支持 boolean 类型的数组,虚拟机的 newarray 指令可以创建这种数组.boolean 的数组类型的访问与修改共用 byte 类型数组的 baload 和 bastore 指令.

delphi编程里的bool跟boolean类型有什么区别

bool是LongBool类型. Delphi中定义了四种布尔类型:Boolean,ByteBool,WordBool和LongBool.后面三种布尔类型是为了与其他语言兼容而引入的,一般情况下建议使用Boolean类型.这四种类型的布尔值占用内存的数量如下:Boolean 1 ByteByteBool 1 ByteWordBool 2 Bytes(1 Word)LongBool 4 Bytes(2 Words)对于ByteBool,WordBool和LongBool三种类型True常量的值为非

mysql数据库中的boolean类型

mysql数据库中没有boolean类型,用tinyint类型代替,1代表true,0代表false