0Pricing
JavaScript Academy · 课时

typeof、真值与假值,以及 == 与 ===

安全使用 typeof,识别真值与假值,并使用 === 正确比较值。

typeof、真值与假值,以及 == 与 === 是 CoddyKit 上的免费 JavaScript Academy 课时。 这是第 2 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 JavaScript Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 JavaScript Academy 课程共包含 3 节课。

简介

目标:了解 typeof 如何识别类型,哪些值是真值或假值,以及何时应使用 === 而不是 ==。

  • typeof 基础
  • 真值与假值
  • 严格相等
typeof、真值与假值,以及 == 与 === — 插图 1

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)
typeof、真值与假值,以及 == 与 === — 插图 2

真值与假值(概念)

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

typeof、真值与假值,以及 == 与 === — 插图 3

测试真值性

使用 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
typeof、真值与假值,以及 == 与 === — 插图 4

宽松相等的陷阱

== 会强制转换类型,从而产生令人困惑的匹配结果。在大多数代码中请避免使用它。

// == 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)
typeof、真值与假值,以及 == 与 === — 插图 5

严格相等

使用 === 和 !==,在不进行类型强制转换的情况下实现可预测的比较。

// === 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、真值与假值,以及 == 与 === — 插图 6

严格相等小测

快速检查:安全的相等比较。

typeof、真值与假值,以及 == 与 === — 插图 7

总结

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

typeof、真值与假值,以及 == 与 === — 插图 8

常见问题解答

「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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 基本类型与对象及核心类型
  2. typeof、真值与假值,以及 == 与 ===
  3. 类型强制转换:避免意外的安全模式
← 返回 JavaScript Academy