類型不一樣,返回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不會進行類型轉換, 但它們倆相等