JS隐式类型转换

21 阅读1分钟

JS双等运算符(隐式转换)

两特殊,两规则

  • 如果等号两边类型相同,直接比较值

    image-20231010171016257

    第一种特殊情况,如果类型相同NaN==NaN 结果false

  • 如果两边类型不同

第二种特殊情况,null==undefined 结果 true

第一条规则:如果两端都是原始类型双方转数字

image-20231010171400590 注意:null是特殊的,它如果参与数学运算的话,就是0,但是==的时候就作为独立的null,所以0不等于null

image-20231010171516363

第二条规则:如果有一端不是原始类型,那么对象转原始。然后原始类型比较

对象转原始的规则:

  • 首先看对象里是否有 Symbol.toPrimitive()方法

  • 其次判断对象里是否有 valueOf()方法

  • 最后调用 toString()方法