zoukankan      html  css  js  c++  java
  • js == 判断

    根据阮一峰介绍的算法文章分12部分可判断:

    1. 如果x不是正常值(比如抛出一个错误),中断执行。
    2. 如果y不是正常值,中断执行。
    3. 如果Type(x)Type(y)相同,执行严格相等运算x === y
    4. 如果xnullyundefined,返回true
    5. 如果xundefinedynull,返回true
    6. 如果Type(x)是数值,Type(y)是字符串,返回x == Number(y)的结果。
    7. 如果Type(x)是字符串,Type(y)是数值,返回Number(x) == y的结果。
    8. 如果Type(x)是布尔值,返回Number(x) == y的结果。
    9. 如果Type(y)是布尔值,返回x == ToNumber(y)的结果。
    10. 如果Type(x)是字符串或数值或Symbol值,Type(y)是对象,返回x == ToPrimitive(y)的结果。(对象变为原始值通过valueOf() ,toString()得到
    11. 如果Type(x)是对象,Type(y)是字符串或数值或Symbol值,返回ToPrimitive(x) == y的结果。
    12. 返回false


      一般是看最终能否变为number  原始值的比较, 布尔值false 变为0 ,空字符串'’ 变为0 ,‘12321’
      object对象通过变为原始值变为对应的值(valueOf() ,toString(),原始类型有 Undefined、Null、Boolean、Number 和 String )
      undefined 为null派生来的, 认为null == undefined ,但是数值类型不同
  • 相关阅读:
    POJ 3276 Face The Right Way
    POJ 3061 Subsequence
    HDU 2104 hide handkerchief
    GCJ Crazy Rows
    HDU 1242 Rescue
    激光炸弹:二维前缀和
    I Hate It:线段树:单点修改+区间查询
    承压计算:模拟+double
    等差素数列:线性筛+枚举
    Period :KMP
  • 原文地址:https://www.cnblogs.com/FineDay/p/5974343.html
Copyright © 2011-2022 走看看