一篇文章带你了解JavaScript布尔值

开发 前端
一个JavaScript Boolean类型代表一个值:true或false。

一个JavaScript Boolean类型代表一个值:true或false。

一、Boolean 值

很多时候,在编程中,需要一个只能有两个值的数据类型,像:YES / NO 或者 ON / OFF  或者 TRUE / FALSE。

为此,JavaScript有布尔数据类型。它只能取值为真或假。

二、Boolean() 函数

能使用 Boolean() 函数来查找表达式(或变量)是否为真:

Boolean(10 > 9)        // returns true
或者更容易的:
(10 > 9)              // also returns true
10 > 9                // also returns true

完整代码:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>项目</title>
    </head>
    <body style="background-color: aqua;">


        <p>显示布尔值:(10 >9):</p>


        <button onclick="myFunction()">试试</button>


        <p id="demo"></p>


        <script>
            function myFunction() {
                document.getElementById("demo").innerHTML = Boolean(10 > 9);
            }
</script>


    </body>
</html>

图片

三、比较和条件

JS比较全面的比较运算符 ,JS比较全面的条件语句。

操作符

描述

实例

==

等于

if (day == "Monday")

>

大于

if (salary > 9000)

<

小于

if (age < 18)

一个表达式的布尔值为JavaScript比较条件的基础。

1. 有“真实”价值的一切都是真的。

<script>
    var b1 = Boolean(100);
    var b2 = Boolean(3.14);
    var b3 = Boolean(-15);
    var b4 = Boolean("Hello");
    var b5 = Boolean('false');
    var b6 = Boolean(1 + 7 + 3.14);


    document.getElementById("demo").innerHTML =
    "100 is " + b1 + "<br>" +
    "3.14 is " + b2 + "<br>" +
    "-15 is " + b3 + "<br>" +
    "任意(非空)字符串是 " + b4 + "<br>" +
    "'false' 字符串是 " + b5 + "<br>" +
    "任意表达式 (非零)是 " + b6;
</script>

图片

2. 没有“真实”的一切都是假的。

布尔值 0 是 false。

var x = 0;
Boolean(x);       // returns false

完整代码:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>项目</title>
    </head>
    <body style="background-color: aqua;">


        <p>显示0的布尔值:</p>


        <button onclick="myFunction()">试试</button>


        <p id="demo"></p>
     /*下面案例,替换相对于的js,实现不同的效果展示*/
        <script>
            function myFunction() {
                var x = 0;
                document.getElementById("demo").innerHTML = Boolean(x);
            }
</script>


    </body>
</html>

布尔值 -0 是 false。

<script>
            function myFunction() {
                var x = -0;
                document.getElementById("demo").innerHTML = Boolean(x); // returns false
            }
</script>

图片

空字符串""是 false。

<script>
    function myFunction() {
        var x;
        document.getElementById("demo").innerHTML = Boolean(x);// returns false
    }
</script>

图片

null的布尔值是 false。

<script>
    function myFunction() {
       var x = null;
        document.getElementById("demo").innerHTML = Boolean(x);// returns false
    }
</script>

图片

false 的布尔值是false。

<script>
    function myFunction() {
        var x = false;
        document.getElementById("demo").innerHTML = Boolean(x);// returns false
    }
</script>

图片

NaN 的布尔值是 false。

<script>
    function myFunction() {
        var x = 10 / "H";
        document.getElementById("demo").innerHTML = Boolean(x);// returns false
    }
</script>

图片

四、布尔值可以是对象

通常JavaScript使用布尔的字面量创建: var x = false。

布尔值,也可以使用new关键字创建新对象: var y = new Boolean(false)。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>项目</title>
  </head>
  <body style="background-color: aqua;">


    <p>不要创建一个布尔对象.</p>
    <p>布尔值和对象不能被安全的比较.</p>


    <p id="demo"></p>


    <script>
      var x = false; // x is a boolean
      var y = new Boolean(false); // y is an object
      document.getElementById("demo").innerHTML =
        typeof x + "<br>" + typeof y;
</script>


  </body>
</html>

图片

不要创建布尔对象。它减慢执行速度。new关键字使代码复杂化。这会产生一些意想不到的结果。

当使用= =运算符,相等的布尔值是相等的:

var x = false;
var y = new Boolean(false);


// (x == y) is true because x and y have equal values

当使用===运算符,相等的布尔值不相等,因为===运算符将比较类型和值。

var x = false;
var y = new Boolean(false);


// (x === y) is false because x and y have different types

甚至更糟。对象不能比较。

var x = new Boolean(false);
var y = new Boolean(false);


// (x == y) is false because objects cannot be compared

运行结果:

图片

比较两个JavaScript对象将始终返回false。

五、总结

本文基于JavaScript ,介绍了布尔函数在实际应用中需要注意的点,对Boolean运算符的比较和条件 进行了分点的讲解。布尔值也可以是对象。

希望读者能够根据本文的案例,自己去尝试实际操作一下,有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。

文章希望能够帮助你更好的理解 和学习。

责任编辑:华轩 来源: 前端进阶学习交流
相关推荐

2021-06-04 09:56:01

JavaScript 前端switch

2021-02-02 18:39:05

JavaScript

2020-11-10 10:48:10

JavaScript属性对象

2021-01-29 18:41:16

JavaScript函数语法

2021-03-09 14:04:01

JavaScriptCookie数据

2021-05-18 08:30:42

JavaScript 前端JavaScript时

2021-03-05 18:04:15

JavaScript循环代码

2021-01-26 23:46:32

JavaScript数据结构前端

2024-04-19 14:23:52

SwitchJavaScript开发

2023-09-06 14:57:46

JavaScript编程语言

2023-07-30 15:18:54

JavaScript属性

2024-01-30 13:47:45

2021-06-24 09:05:08

JavaScript日期前端

2023-06-01 17:10:12

HTMLJavaScript

2021-11-26 11:10:07

JavaScript 节点导航

2021-04-20 11:20:24

Java开发运算符

2021-05-07 14:17:01

JavaScript元素网页

2024-07-02 14:14:18

2023-06-06 15:45:40

JavaScript数组

2023-07-25 16:06:57

JavaScript对象
点赞
收藏

51CTO技术栈公众号