Ruby's Louvre

每天学习一点点算法

导航

比较大小

  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;
    4. 如果x为字符串,如果两者的每个字符在组合顺序上都一致,返回true,否则为false。
    5. 如果x为布尔,如果两者的值都相同,则返回true,否则为false。
    6. 如果x与y都引用同一个对象则返回true,否则为false。
  2. 如果x为null,y为undefined,返回true.
  3. 如果x为undefined,y为null,返回true.
  4. 如果x为Number,y为String,那么将y转换为Number再比较.
  5. 如果x为String,y为Number,那么将x转换为Number再比较.
  6. 如果x为Boolean,那么将x转换为Number再比较.
  7. 如果y为Boolean,那么将y转换为Number再比较.
  8. 如果x为既不是数字与字符串而y是对象,那么将y转换为基本类型再比较.
  9. 如果y为既不是数字与字符串而x是对象,那么将x转换为基本类型再比较.
  10. 非上述情形,返回false;

posted on 2010-07-04 14:48  司徒正美  阅读(240)  评论(0)    收藏  举报