JavaScript 一共提供了8个比较运算符。
相等比较
== 相等运算符
=== 严格相等运算符
!= 不相等运算符
!== 严格不相等运算符
非相等比较
> 大于运算符
< 小于运算符
<= 小于或等于运算符
>= 大于或等于运算符
这八个比较运算符分成两类:相等比较和非相等比较。
两者的规则是不一样的,对于非相等的比较,算法是先看两个运算子是否都是字符串,如果是的,就按照字典顺序比较(实际上是比较 Unicode 码点);否则,将两个运算子都转成数值,再比较数值的
大小。
如果运算子是对象,会转为原始类型的值,再进行比较。
对象转换成原始类型的值,算法是先调用valueOf方法;如果返回的还是对象,再接着调用toString方法,详细解释参见《数据类型的转换》一章。
{} > {}
最后会变成 ‘[object Object]’ > ‘[object Object]’ 则为 false
{} >= {}
同理比较的是 ‘[object Object]’ >= ‘[object Object]’ 则为 true