写代码时,我们经常要让程序“做决定”。比如用户登录时密码对不对、购物车有没有商品、某个功能能不能点——这些看似简单的判断,背后都离不开布尔值逻辑判断。
什么是布尔值
布尔值只有两个:true 和 false。它就像开关,开就是 true,关就是 false。在编程里,这种二元状态特别适合用来控制流程。
举个例子,你写一个提醒功能,判断现在是不是上班时间:
let hour = new Date().getHours();
let isWorkTime = hour >= 9 && hour <= 18;
if (isWorkTime) {
console.log("该工作了");
} else {
console.log("可以休息");
}
这里的 isWorkTime 就是一个布尔值,由两个条件通过 &&(且)连接得出。只有上午9点到下午6点之间才为 true。
复杂判断靠逻辑运算组合
实际项目中,判断条件往往不只一个。比如一个表单提交,要求用户名不为空、密码超过6位、并且用户已勾选协议。
let username = "alice";
let password = "1234567";
let agreed = true;
let canSubmit = username !== "" && password.length > 6 && agreed;
if (canSubmit) {
// 提交逻辑
}
只要其中一个条件不满足,canSubmit 就是 false,提交按钮就得禁用。这种组合判断在前端验证里非常常见。
避免嵌套地狱的小技巧
有时候多个 if 套在一起,代码会很难读。比如检查用户权限:
if (user.loggedIn) {
if (user.role === "admin") {
if (user.active) {
// 允许操作
}
}
}
其实可以简化成一个布尔表达式:
let hasPermission = user.loggedIn && user.role === "admin" && user.active;
if (hasPermission) {
// 允许操作
}
逻辑更清晰,也更容易测试和维护。
调试时别忘了打印布尔值
线上出问题,经常是因为某个判断没按预期走。这时候别猜,直接把中间的布尔值打出来:
console.log("用户名非空:", username !== "");
console.log("密码够长:", password.length > 6);
console.log("已同意协议:", agreed);
console.log("最终可提交:", canSubmit);
一看就知道是哪一环掉了链子。这种做法在修复 bug 时特别管用。
布尔值看起来简单,但用好它能让代码更可靠、更易读。很多复杂的业务逻辑,拆到最后,其实就是一堆 true 和 false 的排列组合。