1. 如果两者的类型相同,那么
    1. 如果x的类型为Undefined,返回true。
    2. 如果x的类型为Null,返回true。
    3. 如果x的类型为Number,
    • 如果x为NaN,返回false;
    • 如果y为NaN,返回false;
    • 如果x与y的数值相同,返回true;
    • 如果x为+0,y为-0,返回true;
    • 如果x为-0,y为+0,返回true;
    • 非上述情形,返回false;
  2. 如果x为字符串,如果两者的每个字符在组合顺序上都一致,返回true,否则为false。
  3. 如果x为布尔,如果两者的值都相同,则返回true,否则为false。
  4. 如果x与y都引用同一个对象则返回true,否则为false。
  • 如果x为null,y为undefined,返回true.
  • 如果x为undefined,y为null,返回true.
  • 如果x为Number,y为String,那么将y转换为Number再比较.
  • 如果x为String,y为Number,那么将x转换为Number再比较.
  • 如果x为Boolean,那么将x转换为Number再比较.
  • 如果y为Boolean,那么将y转换为Number再比较.
  • 如果x为既不是数字与字符串而y是对象,那么将y转换为基本类型再比较.
  • 如果y为既不是数字与字符串而x是对象,那么将x转换为基本类型再比较.
  • 非上述情形,返回false;
  • 相关文章: