正在加载...

JavaScript 布尔值

你已经会裁剪和搜索字符串了。程序还需要清楚的是或否——表单准备好了吗?有没有匹配?这种值类型就是布尔值:只有 true 或 false。本节先认清值本身;完整的 if 分支稍后讲。

JavaScript 中的布尔值是什么?

布尔值表示是/否。两个关键字是 true 和 false——不要加引号。typeof true 的结果是 "boolean"。你可以保存一个标志(let ready = true),用比较得到布尔值(age >= 18),或用 Boolean(value) 转换。像 "true" 这样的字符串仍是文本,不是布尔值。一份简短的 falsy 列表(转换后变成 false 的值)能帮你避开 0、""、null、undefined 带来的意外。

布尔工具箱

📊 初学者先掌握的日常布尔概念

概念 示例 结果 / 说明
字面「是」 true 关键字,不是字符串
字面「否」 false 关键字,不是字符串
typeof typeof false "boolean"
比较 5 > 3 true
转换 Boolean(0) false(零常为 falsy)
转换文本 Boolean("hi") true(非空字符串)

写出 true 和 false

使用关键字 true 和 false。同时打印值和 typeof,看到类型标签 "boolean"。

true 与 false 字面量

javascript
let ready = true;
let done = false;
console.log(ready);
console.log(done);
console.log(typeof ready);
console.log(typeof done);

比较会返回布尔值

>、<、>=、<=、===、!== 这类运算符用 true 或 false 作答。不必每次手写布尔值——比较会生成它。

比较得到 true 或 false

javascript
console.log(10 > 5);
console.log(2 === 2);
console.log(2 === "2");
console.log(7 < 3);

用 Boolean() 转换

Boolean(value) 把其他值变成 true 或 false。「空一些」的值常变成 false;许多日常值变成 true。

Boolean 转换

javascript
console.log(Boolean(1));
console.log(Boolean(0));
console.log(Boolean("hello"));
console.log(Boolean(""));

简短 falsy 对照

传给 Boolean()(或之后用在条件里)会变成 false 的有:false、0、""、null、undefined、NaN。初学者先试的其他值几乎都是 truthy——包括非空字符串 "0" 和 "false"。

要记住的 falsy 值

javascript
console.log(Boolean(false));
console.log(Boolean(0));
console.log(Boolean(""));
console.log(Boolean(null));
console.log(Boolean(undefined));

会让初学者吃惊的 truthy 值

非空字符串是 truthy——包括 "0" 和 "false"。数字 1 也是 truthy。把它们打印出来,好和 falsy 对比记住。

truthy 惊喜

javascript
console.log(Boolean("0"));
console.log(Boolean("false"));
console.log(Boolean(1));
console.log(Boolean(" "));

在页面上显示是/否标志

保存一个布尔值,再用 textContent 写到页面上。

页面显示 ready 标志

html
<!DOCTYPE html>
<html>
<head>
<title>Booleans — ready flag</title>
</head>
<body>
<p id="out">…</p>
<script>
let ready = true;
document.getElementById("out").textContent = "ready = " + ready;
</script>
</body>
</html>

段落会在页面上显示布尔值(ready = true 或 ready = false)。只改 ready,刷新后确认文字变化。后面会把这个标志放进完整的 if。

自己试试

  1. 创建 let on = true 和 let off = false;打印两个值和两个 typeof。
  2. 打印 8 >= 8、3 !== 4、1 === "1";运行前先猜结果。
  3. 对 1、0、"ok"、"" 调用 Boolean;记下哪些是 true。
  4. 打印 Boolean("0") 和 Boolean(0)——字符串是 truthy,数字零是 falsy。
  5. 在 HTML 演示里把 ready 设为 false,刷新并读新行。
  6. 改掉 + ready 前面的标签文字,布尔逻辑保持不变。

常见错误

  • 写成带引号的 "true" / "false"——那是字符串,不是布尔值
  • 写成大写的 True / False——JavaScript 关键字是小写 true / false
  • 以为 1 和 0 就是布尔类型——它们是数字;转换可以映射,但 typeof 1 是 "number"
  • 忘记比较已经返回布尔值——常常要保存结果:let ok = score >= 10
  • 把非空字符串 "false" 当成 falsy——Boolean("false") 是 true

小结

  • 布尔值只有 true 或 false(关键字,不加引号)
  • typeof 报告 "boolean";像 ===、> 这样的比较会返回布尔值
  • Boolean(value) 做转换;记住常见 falsy:0、""、null、undefined、false、NaN
  • 字符串 "true" / "false" 是文本——不是布尔类型
  • 下一课:null 与 undefined——两种「空」的概念,不是布尔值

🧠 测试您的知识

准备开始

测试您的知识

通过这个互动测验挑战自己,看看你对这个主题的理解程度如何

❓
8
问题
🎯
70%
及格要求
♾️
∞
时间
🔄
∞
尝试次数

📝 说明

  • 仔细阅读每个问题
  • 为每个问题选择最佳答案
  • 您可以随时重新参加测验
  • 您的进度将显示在顶部