网站
引入
网页经常需要根据不同情况做判断,例如用户是否登录、输入内容是否为空、商品是否有库存。
布尔值用于表示这类只有两种结果的状态,让 JS 可以据此决定后面执行什么代码。
正文
定义
定义
布尔值是 JS 中表示真和假的数据类型,只有
true和false两个值。
布尔值的类型是 boolean。
let isLogin = true;
let hasStock = false;
console.log(typeof isLogin);输出结果:
"boolean"true 和 false 是 JS 关键字,必须小写,不能写成 True 或 False,也不需要加引号。
基础用法
可以直接把布尔值保存到变量中,用来记录状态。
const isMember = true;
if (isMember) {
console.log("显示会员价格");
}当 isMember 是 true 时,if 中的代码会执行。
如果写成字符串 "true",它保存的是文本,不是布尔值。
console.log(typeof true);
console.log(typeof "true");输出结果:
"boolean"
"string"比较得到布尔值
比较运算符会返回 true 或 false。
const age = 18;
console.log(age >= 18);
console.log(age === 20);输出结果:
true
false| 写法 | 结果为 true 的情况 |
|---|---|
a === b | 值和类型都相同 |
a !== b | 值或类型不同 |
a > b | a 大于 b |
a >= b | a 大于或等于 b |
a < b | a 小于 b |
a <= b | a 小于或等于 b |
实际比较时,建议优先使用 === 和 !==,因为它们不会自动转换类型。
console.log(1 == "1");
console.log(1 === "1");输出结果:
true
false逻辑运算
逻辑运算符可以组合多个判断条件,或把结果取反。
| 运算符 | 含义 | 示例 |
|---|---|---|
&& | 并且,两个条件都成立 | age >= 18 && isMember |
| ` | ` | |
! | 取反 | !isLogin |
const age = 20;
const hasTicket = true;
console.log(age >= 18 && hasTicket);
console.log(age < 18 || hasTicket);
console.log(!hasTicket);输出结果:
true
true
false真假值
在 if 等条件位置,JS 会把其他类型的数据转换成布尔值再判断。
会被当成 false 的常见值叫做假值:
| 假值 | 说明 |
|---|---|
false | 布尔值假 |
0、-0、0n | 值为 0 的数字或 BigInt |
"" | 空字符串 |
null | 空值 |
undefined | 未定义 |
NaN | 不是有效数字 |
除了这些值,其他大多数值都会被当成 true,叫做真值。
console.log(Boolean("hello"));
console.log(Boolean("0"));
console.log(Boolean([]));
console.log(Boolean({}));输出结果都是:
true注意:"false" 和 "0" 都是非空字符串,所以它们是真值;空数组 [] 和空对象 {} 也是真值。
例子
判断用户是否输入用户名
const userName = "";
if (!userName) {
console.log("请输入用户名");
}空字符串会被当成 false,!userName 会把它取反成 true,因此会输出提示。
判断是否可以购买
const hasStock = true;
const isLogin = true;
if (hasStock && isLogin) {
console.log("可以购买");
} else {
console.log("暂时不能购买");
}只有商品有库存,并且用户已登录时,才能购买。
特点
- 布尔值只有
true和false true、false必须小写,且不能加引号- 比较运算通常会得到布尔值
if条件会把值转换成布尔值后再判断&&表示并且,||表示或者,!表示取反- 判断相等时,优先使用
===和!== - 不要把字符串
"true"、"false"当成布尔值使用
理解
布尔值可以理解为一个开关,只有打开 true 和关闭 false 两种状态。
它本身很简单,但能让程序根据当前状态做选择。比较、登录判断、表单校验这些常见功能,最后都会回到“条件到底是真还是假”。
引出
理解布尔值后,可以继续学习 JS 条件判断,根据 true 或 false 执行不同代码。