JavaScript 布尔值

JavaScript 定义了 2 布尔值:truefalse,布尔值用于逻辑计算中。

JavaScript 定义了 2 个布尔值:truefalse,布尔值用于逻辑计算中。

布尔值

很多时候,在编程中,你需要一个只能有两个值之一的数据类型,比如

  • 是/否
  • 开关
  • 真假

JavaScript 中的布尔(Boolean)类型就是这种类类型,它的值只能 true false

Boolean() 函数

您可以使用 Boolean() 函数来确定表达式(或变量)是否为真:

Boolean(10 > 9); // 返回 true

或者更简单:

10 > 9; // 返回 true
10 > 9; // 返回 true

比较运算符参与的比较运算返回的就是布尔值。

比较和条件

比较运算符参与的比较运算返回的就是布尔值,布尔值一般用于条件判断中。

这里有些例子:

运算符 说明 示例
== 相等 if (day == "Monday")
> 大于 if (salary > 9000)
< 小于 if (age < 18)

表达式的布尔值是所有 JavaScript 比较和条件判断的基础。

JavaScript 比较一章给出了比较运算符的完整概述。

JS 条件语句一章给出了条件语句的完整概述。

具有“价值”的一切都是真的

100;

3.14 - 15;

("Hello");

("false");

7 + 1 + 3.14;

没有“价值”的一切都是假的

0(零)的布尔值为 false

let x = 0;
Boolean(x); // 返回 false

-0 的布尔值为 false

let x = -0;
Boolean(x); // 返回 false

""(空字符串)的布尔值为 false

let x = "";
Boolean(x); // 返回 false

undified 的布尔值是 false

let x;
Boolean(x); // 返回 false

null 的布尔值是 false

let x = null;
Boolean(x); // 返回 false

false 的布尔值是 false

let x = false;
Boolean(x); // 返回 false

NaN 的布尔值是 false

let x = 10 / "Hallo";
Boolean(x); // 返回 false

new Boolean()

通常,JavaScript 布尔值是从布尔字面量创建的:

let x = false;

也可以通过 new Boolean() 创建 :

let y = new Boolean(false);

虽然看起来内容是相同的,但是这两种方式创建的变量有很大的差异。

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

console.log("typeof x =", typeof x); // 输出 typeof x = boolean
console.log("typeof y =", typeof y); // 输出 typeof y = object

console.log("(x == y) =", x == y); // 输出 (x == y) = true
console.log("(x === y) =", x === y); // 输出 (x === y) = false

从上面的例子看出他们的不同:

  • 通过字面量创建的布尔值的 typeof 为 boolean
  • 通过 new Boolean() 创建的布尔值的 typeof 为 object
  • 通过 == 比较的时候,他们是相等的
  • 通过 === 比较的时候,他们是不相等的

使用 new Boolean() 创建布尔值会让代码复杂化,降低执行效率,容易引入不易发现的问题。因此除非出于某种目的,一般我们建议不要使用 new Boolean() 创建布尔值。