zoukankan      html  css  js  c++  java
  • 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对象。

  • 相关阅读:
    盒模型
    DTD
    JS 中的 __proto__ 、prototype、constructor
    ES 5 中 判断数组的方法
    js keyup、keypress和keydown事件
    webpack 安装 url-loader 模块后,图片地址展示错误问题
    前端展示PDF内容
    对象的深拷贝
    IE 11 中不知promise 的 finally 方法
    js判断一个字符串是否为纯数字组成
  • 原文地址:https://www.cnblogs.com/yxlove/p/4515968.html
Copyright © 2011-2022 走看看