== 与 === 的区别与使用场景全解析(JavaScript 精华笔记)
📘 == 与 === 的区别与使用场景全解析(JavaScript 精华笔记)
🔥 == vs ===:核心区别
| 比较符 | 名称 | 是否类型转换 |
|---|---|---|
== |
抽象相等(宽松相等) | ✅ 会进行类型转换 |
=== |
严格相等(严格比较) | ❌ 不会进行类型转换(类型和值都必须一样) |
✅ 一句话建议(实战经验)
99.9% 的情况下用
===,只有你明确知道要进行类型转换时才用==。
👀 示例对比
0 == false // true ✅ 类型转换了
0 === false // false ❌ 类型不同
'1' == 1 // true ✅ 字符串转换成数字
'1' === 1 // false ❌ 类型不同
null == undefined // true ✅ JS 设计特例
null === undefined // false
[] == false // true ✅ 空数组转换为 0
[] === false // false
'' == 0 // true
'' === 0 // false
✅ 建议使用 === 的场景(几乎所有情况)
1. 值是否一样(绝对一致)
if (a === 5) { ... }
if (user.name === 'Tom') { ... }
2. 判断是否为 null 或 undefined
if (value === null) { ... }
if (typeof value === 'undefined') { ... }
3. 避免出错的判断
if (arr.length === 0) { ... }
⚠️ 合理使用 == 的极少数场景
✅ 1. 判断是否“为空”:null 或 undefined
if (value == null) {
// 相当于:value === null || value === undefined
}
✅ 2. 宽松对比用户输入
const input = prompt("请输入数字");
if (input == 42) {
alert("答对了!");
}

浙公网安备 33010602011771号