比较两个值的大小,返回一个布尔值

1. 非相等运算符:字符串的比较

  1. "cat" > "dog"; //false

1.1 字符串的比较按照字典的顺序比较

2. 非相等运算符:非字符串的比较

如果两个比较运算符中,至少有一个是非字符串,需分两种情况

2.1 原始类型值

  1. 如果两个类型的值都是原始类型,则先转成数值再比较

    2.2 对象

  2. 如果运算子是对象,会转为原始类型的值,再进行比较

  3. 转化过程为先调用valueOf,如果返回值任然是对象,则再调用toString

    3. 严格相等运算符

    3.1 不同类型的值

  4. 两个值类型不同,直接返回false

    3.2 同一类型的原始值

  5. 值相同返回true,不同返回false

    3.3 复合类型值

  6. 比较地址是否相同

    3.4 undefined 和 null

    4. 严格不相等运算符

    5. 相等运算符

    5.1 原始类型值

  7. 转为数值在比较

    5.2 对象和原始类型值

  8. 对象转为原始类型值再比较

  9. 具体为:
    • 先调用valueOf,如果得到原始值,则比较,否则调用toString
    • toString返回字符串形式,再进行比较