大于(>), 小于(<),大于等于(>=), 小于(<=),等于(==) 对两个值进行比较,返回一个Boolean值。如果操作数中含有非数值时,要进行转换。
转换规则(按照顺序):
- 如果都是数值,进行数值比较
- 如果都是字符串,比较两个字符串对应的字符编码
- 如果一个操作数是数值,则将另一个转换为数值,然后进行数值比较
- 如果一个操作数是对象,则调用对象的valueof()方法,用得到的结果进行按照前面的规则比较。如果如果对象没有valueof()方法,调用对象的toString()方法,根据得到的结果进行比较
- 如果一个操作数是布尔值,则先将其转化为数值,然后再比较
true == 'true' //false
true > 'a' //false
1 == true // true
//在相等操作中规定undefined和null相等
undefined == null //true
参考: JavaScript高级程序设计(第三版)