比较两个值的大小,返回一个布尔值
1. 非相等运算符:字符串的比较
"cat" > "dog"; //false
1.1 字符串的比较按照字典的顺序比较
2. 非相等运算符:非字符串的比较
如果两个比较运算符中,至少有一个是非字符串,需分两种情况
2.1 原始类型值
如果两个类型的值都是原始类型,则先转成数值再比较
2.2 对象
如果运算子是对象,会转为原始类型的值,再进行比较
转化过程为先调用valueOf
,如果返回值任然是对象,则再调用toString
3. 严格相等运算符
3.1 不同类型的值
两个值类型不同,直接返回false
3.2 同一类型的原始值
值相同返回true,不同返回false
3.3 复合类型值
比较地址是否相同
3.4 undefined 和 null
4. 严格不相等运算符
5. 相等运算符
5.1 原始类型值
转为数值在比较
5.2 对象和原始类型值
对象转为原始类型值再比较
- 具体为:
- 先调用
valueOf
,如果得到原始值,则比较,否则调用toString
- toString返回字符串形式,再进行比较