== 与 === 的区别与使用场景全解析(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("答对了!");
}
posted @ 2025-07-24 20:58  隐形的喷火龙  阅读(12)  评论(0)    收藏  举报