网站

Boolean - JavaScript | MDN

JavaScript 布尔值 - W3School

引入

网页经常需要根据不同情况做判断,例如用户是否登录、输入内容是否为空、商品是否有库存。

布尔值用于表示这类只有两种结果的状态,让 JS 可以据此决定后面执行什么代码。

正文

定义

定义

布尔值是 JS 中表示真和假的数据类型,只有 truefalse 两个值。

布尔值的类型是 boolean

let isLogin = true;
let hasStock = false;
 
console.log(typeof isLogin);

输出结果:

"boolean"

truefalse 是 JS 关键字,必须小写,不能写成 TrueFalse,也不需要加引号。

基础用法

可以直接把布尔值保存到变量中,用来记录状态。

const isMember = true;
 
if (isMember) {
  console.log("显示会员价格");
}

isMembertrue 时,if 中的代码会执行。

如果写成字符串 "true",它保存的是文本,不是布尔值。

console.log(typeof true);
console.log(typeof "true");

输出结果:

"boolean"
"string"

比较得到布尔值

比较运算符会返回 truefalse

const age = 18;
 
console.log(age >= 18);
console.log(age === 20);

输出结果:

true
false
写法结果为 true 的情况
a === b值和类型都相同
a !== b值或类型不同
a > ba 大于 b
a >= ba 大于或等于 b
a < ba 小于 b
a <= ba 小于或等于 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-00n值为 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("暂时不能购买");
}

只有商品有库存,并且用户已登录时,才能购买。

特点

  • 布尔值只有 truefalse
  • truefalse 必须小写,且不能加引号
  • 比较运算通常会得到布尔值
  • if 条件会把值转换成布尔值后再判断
  • && 表示并且,|| 表示或者,! 表示取反
  • 判断相等时,优先使用 ===!==
  • 不要把字符串 "true""false" 当成布尔值使用

理解

布尔值可以理解为一个开关,只有打开 true 和关闭 false 两种状态。

它本身很简单,但能让程序根据当前状态做选择。比较、登录判断、表单校验这些常见功能,最后都会回到“条件到底是真还是假”。

引出

理解布尔值后,可以继续学习 JS 条件判断,根据 truefalse 执行不同代码。

也可以学习 JS 运算符JS 类型转换,进一步理解比较、逻辑运算和真假值转换。