JS中的==和===

==比较规则

参数1参数2转换规则
布尔值其它布尔值转为数值:false转为0,true转为1
字符串数值将字符串转为数值类型
对象不是对象调用对象的valueOf()或者toString()方法转换为基本数值类型在进行比较
nullundefined相等
null或者undefined其它类型不将null/undefined转换为其它的任意类型,始终返回false
NaNNaN或其它始终不相等
对象对象比较他们是不是同一个对象,即引用地址是否一样
[] == true {} == true [] == [] false 都是对象,但是引用地址不一样 {} == {} false 都是对象,但是引用地址不一样 0 == [] true []在比较前转为0,所以结果为true ![] == [] true ![]转为false,-->0==[]-->0==[].toString()=""-->0==""-->0==0 !{}=={} false !{} 转为false,-->0=={}-->0==({}).toString()="[object object]"-->0==NaN # ===比较规则 类型相等,且值相等,不会做任何转换 注意NaN不与任何值相等,包括他本身
posted @ 2020-02-20 17:43  终相守  阅读(197)  评论(0)    收藏  举报