JavaScript 布尔值(Boolean)

  • JavaScript布尔值

    JavaScript布尔值表示两个值之一:truefalse
    通常,在编程中,您将需要一种只能具有两个值之一的数据类型,例如:是/否开/关真/假。为此,JavaScript具有布尔数据类型。它只能取值truefalse
  • Boolean()函数

    您可以使用Boolean()函数来确定表达式(或变量)是否为真:
    Boolean(10 > 9)        // 返回 true
    
    尝试一下
    甚至更容易:
    (10 > 9)              // 总是返回 true
    10 > 9                // 总是返回 true
    
    尝试一下
  • 比较和条件

    本教程的后面章节还提供了比较运算符的完整概述和条件语句的完整概述。这里有些例子:
    操作符 描述 例子
    == 相等 if (day == "Monday")
    > 大于 if (salary > 9000)
    < 小于 if (age < 18)
    布尔值是所有JavaScript表达式比较和条件判断的基础。
  • 具有“值”的一切都是true

    100
    
    3.14
    
    -15
    
    "Hello"
    
    "false"
    
    7 + 1 + 3.14
    
    尝试一下
  • 没有“值”的一切都是false

    Boolean(0)返回false:
    var x = 0;
    Boolean(x);       // 返回 false
    
    尝试一下
    Boolean(-0)返回false:
    var x = -0;
    Boolean(x);       // 返回 false
    
    尝试一下
    Boolean("")返回false:
    var x = "";
    Boolean(x);       // 返回 false
    
    尝试一下
    Boolean(undefined)返回false:
    var x;
    Boolean(x);       // 返回 false
    
    尝试一下
    Boolean(null)返回false:
    var x = null;
    Boolean(x);       // 返回 false
    
    尝试一下
    Boolean(false)返回false:
    var x = false;
    Boolean(x);       // 返回 false
    
    尝试一下
    Boolean(NaN)返回false:
    var x = 10 / "H";
    Boolean(x);       // 返回 false
    
    尝试一下
  • 布尔可以是对象

    通常,JavaScript布尔值是从文字创建的原始值:var x = false;但是布尔值也可以用关键字new定义为对象:var y = new Boolean(false);
    var x = false;
    var y = new Boolean(false);
    
    // typeof x 返回 boolean
    // typeof y 返回 object
    
    尝试一下
    不要创建布尔对象。它会降低执行速度,new关键字使代码复杂化。这会产生一些意想不到的结果:
    使用==运算符时,相等的布尔值是相等的:
    var x = false;             
    var y = new Boolean(false);
    
    // (x == y) 返回true , 因为x,y的值相等
    
    尝试一下
    使用===运算符时,相等的布尔值不相等,因为===运算符期望类型和值都相等。
    var x = false;             
    var y = new Boolean(false);
    
    // (x === y) 返回true , 因为x,y的值相等,类型不等
    
    尝试一下
    甚至更糟。对象无法比较:
    var x = new Boolean(false);             
    var y = new Boolean(false);
    
    // (x == y) 返回false , 对象与对象不能比较
    
    尝试一下
    注意(x == y)和(x === y)之间的差异。比较两个JavaScript对象将始终返回false。
    完整的布尔参考,请参考参考手册