JavaScript 布尔值
JavaScript 定义了 2 布尔值:true
和 false
,布尔值用于逻辑计算中。
JavaScript 定义了 2 个布尔值:true
和 false
,布尔值用于逻辑计算中。
布尔值
很多时候,在编程中,你需要一个只能有两个值之一的数据类型,比如
- 是/否
- 开关
- 真假
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()
创建布尔值。