JavaScript 比较运算符的问题

  

tyoeof Date 
undefined == false 
10 * '2a' 
[] == ![] 
[] == []

  

结果:

function

false

NaN

true

false

 

 

 

 

 

 

 

在转数字的过程中。基本数据类型,可以直接理解成使用Number转的.

对象类型,应该理解成 Number(obj.toString())

转换失败,catch住,就是false.

 

 

 

有valueOf的时候,优先使用valueOf

没有valueOf的时候,使用toString

 

 

 

 

 

如果等号对一端是 布尔值 或 number类型。就要对等号两边对数值都转换成number。
Number(false) === 0

Number(true) === 1

Number(null) === 0

Number(undefined) === NaN

 

但是有个例外: null == undefined

 

posted on 2019-06-18 19:03  袜子破了  阅读(165)  评论(1编辑  收藏  举报