Javascript 中 “===” 被称为严格相等运算符(Strict Equality Operator),它的核心作用是不进行类型转换,直接比较两个值的类型和值是否都完全相同。
- 基本规则
使用 === 比较时,会遵循以下逻辑:
1):检查两个值的数据类型是否相同,如果不同,直接返回 false。
2):如果类型相同,再比较它们的值是否相同,值相同则返回 true,否则返回 false。
2.比较示例
console.log(123 === 123); // true (类型相同,值相同)
console.log(123 === '123'); // false (类型不同:number vs string)
console.log(true === true); // true (类型和值都相同)
console.log(false === 0); // false (类型不同:boolean vs number)
3.=== vs ==(严格相等 vs 抽象相等)
| 特性 | === 严格相等 | == 抽象相等 |
|---|---|---|
| 类型转换 | 不进行类型转换 | 先进行类型转换,再比较 |
| 比较逻辑 | 类型 + 值 都相同才相等 | 转换后值相同即相等 |
| 安全性 | 更高,避免隐式转换坑 | 较低,易出意外结果 |