typeof、真值与假值,以及 == 与 ===
安全使用 typeof,识别真值与假值,并使用 === 正确比较值。
typeof、真值与假值,以及 == 与 === 是 CoddyKit 上的免费 JavaScript Academy 课时。 这是第 2 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 JavaScript Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 JavaScript Academy 课程共包含 3 节课。
简介
目标:了解 typeof 如何识别类型,哪些值是真值或假值,以及何时应使用 === 而不是 ==。
- typeof 基础
- 真值与假值
- 严格相等

typeof 概览
typeof 对原始值来说十分快捷。请注意这个历史遗留行为:typeof null 返回“object”。
// typeof returns a string describing the type
console.log(typeof 42);
// "number"
console.log(typeof "hi");
// "string"
console.log(typeof true);
// "boolean"
console.log(typeof undefined);
// "undefined"
console.log(typeof 10n);
// "bigint"
console.log(typeof Symbol("x"));
// "symbol"
console.log(typeof null);
// "object" (historic quirk)

真值与假值(概念)
假值包括:0、-0、0n、“”、false、null、undefined、NaN。其他所有值都是真值(例如“0”、“false”、[]、{}、function(){})。

测试真值性
使用 Boolean(x) 或 if,查看值在条件中的行为。
// Use Boolean(x) or if (x) to test truthiness
console.log(Boolean("0"));
// true (non-empty string)
console.log(Boolean(""));
// false (empty string)
console.log(Boolean([]));
// true (arrays are objects)
console.log(Boolean(0));
// false
console.log(Boolean({}));
// true

宽松相等的陷阱
== 会强制转换类型,从而产生令人困惑的匹配结果。在大多数代码中请避免使用它。
// == performs type coercion: can be surprising
console.log(0 == false);
// true
console.log("" == 0);
// true
console.log(null == undefined);
// true
console.log("5" == 5);
// true (string coerced to number)

严格相等
使用 === 和 !==,在不进行类型强制转换的情况下实现可预测的比较。
// === compares without coercion: safer and clearer
console.log(0 === false);
// false
console.log("" === 0);
// false
console.log("5" === 5);
// false
console.log(5 === 5);
// true

严格相等小测
快速检查:安全的相等比较。

总结
总结:typeof 可以识别原始类型(但要注意 null),您了解了常见的假值,也看到了为什么 === 比 == 更清晰可靠。

常见问题解答
「typeof、真值与假值,以及 == 与 ===」课时是免费的吗?
是的 — 「typeof、真值与假值,以及 == 与 ===」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 JavaScript Academy 课程的其余内容,请升级到 CoddyKit PRO。 JavaScript Academy 课程共包含 3 节课。
「typeof、真值与假值,以及 == 与 ===」这节课中我会学到什么?
安全使用 typeof,识别真值与假值,并使用 === 正确比较值。 你通过在浏览器中直接运行的动手代码来练习 JavaScript Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 JavaScript Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 JavaScript Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 3 节。
「typeof、真值与假值,以及 == 与 ===」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 JavaScript Academy 课中编写并运行代码吗?
能。每节 JavaScript Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 基本类型与对象及核心类型
- typeof、真值与假值,以及 == 与 ===
- 类型强制转换:避免意外的安全模式