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"。
let ready = true;
let done = false;
console.log(ready);
console.log(done);
console.log(typeof ready);
console.log(typeof done);
比较会返回布尔值
>、<、>=、<=、===、!== 这类运算符用 true 或 false 作答。不必每次手写布尔值——比较会生成它。
console.log(10 > 5);
console.log(2 === 2);
console.log(2 === "2");
console.log(7 < 3);
用 Boolean() 转换
Boolean(value) 把其他值变成 true 或 false。「空一些」的值常变成 false;许多日常值变成 true。
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"。
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 对比记住。
console.log(Boolean("0"));
console.log(Boolean("false"));
console.log(Boolean(1));
console.log(Boolean(" "));
在页面上显示是/否标志
保存一个布尔值,再用 textContent 写到页面上。
<!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。
自己试试
- 创建
let on = true和let off = false;打印两个值和两个typeof。 - 打印
8 >= 8、3 !== 4、1 === "1";运行前先猜结果。 - 对
1、0、"ok"、""调用Boolean;记下哪些是true。 - 打印
Boolean("0")和Boolean(0)——字符串是 truthy,数字零是 falsy。 - 在 HTML 演示里把
ready设为false,刷新并读新行。 - 改掉
+ 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——两种「空」的概念,不是布尔值
🧠 测试您的知识
测试您的知识
通过这个互动测验挑战自己,看看你对这个主题的理解程度如何
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部