类型不一样,返回false
类型相同,则spa
类型相同:同上===code
类型不一样:尝试类型转换==【不是真值和假值的比较】对象
null == undefined number == string(stirng转number) boolean == ? (均转换为number) object == number | string (将对象转换为基本类型) 其余:false
false只有和false,0,' ',[ ]比较为真ip
0只有和0,false,‘ ’,还有[ ]比较为真值字符串
' ' 只有和0 , ‘ ’ ,false ,[]比较为真string
[]和0,‘’,false比较为真值,与[]不是!!it
null 与undefinedclass
本身画的比较丑cli
1、首先看双等号先后有没有NaN,若是存在NaN,一概返回false。object
2、再看双等号先后有没有布尔,有布尔就将布尔转换为数字。(false是0,true是1)
3、接着看双等号先后有没有字符串, 有三种状况:
一、对方是对象,对象使用toString()或者valueOf()进行转换;
二、对方是数字,字符串转数字;(前面已经举例)
三、对方是字符串,直接比较;
四、其余返回false
4、若是是数字,对方是对象,对象取valueOf()或者toString()进行比较, 其余一概返回false5、null, undefined不会进行类型转换, 但它们俩相等