JavaScript 比较运算符
一、基础比较运算符类型
运算符 |
名称 |
示例 |
核心特性 |
== |
宽松相等 |
"5" == 5 → true |
隐式类型转换 |
=== |
严格相等 |
"5" === 5 → false |
类型+值双重校验 |
!= |
宽松不等 |
null != 0 → true |
等效于 !(a == b) |
!== |
严格不等 |
5 !== "5" → true |
类型或值任一不同即成立 |
> |
大于 |
"10" > 2 → true |
字符串转数字比较 |
< |
小于 |
"a" < "b" → true |
按Unicode码点逐位比较 |
>= |
大于等于 |
5 >= "5" → true |
包含相等条件的复合判断 |
<= |
小于等于 |
NaN <= 1 → false |
NaN参与比较永远返回false |
二、严格相等(===)
与宽松相等(==)
的深层规则
1. 类型转换优先级(== 的隐式转换逻辑)
- 数值优先原则:数值优先原则是 JavaScript 在宽松相等比较(==)和关系比较(>、< 等)中的隐式类型转换规则,其核心逻辑为:当操作数据类型不同时,优先将非数值类型转换为数值(Number)后再进行比较。
- 原始类型混合比较:
"5" == 5
true == 1
false == 0
null == 0