相等運算符==與等同運算符===,均可以用於判斷數據是否相等,返回boolean類型的數據;==運算符作比較時,要求類型不必定相同,值經過數據類型轉換以後相等便可。===運算符作比較時,要求類型必須相同,並且值也必須相同。 對象
===運算符的條件: 字符串
一、若是運算數類型不相同,那麼不等同; string
二、若是運算數類型都是number,那麼比較兩個數值(任意一個爲NaN,那麼也不等同)是否等同; 數據類型
三、若是運算數類型都是boolean,那麼兩個運算數都爲true或false時就等同; 引用
四、若是運算數類型都是對象類型時,那麼兩個運算數必須引用到同一個對象時纔等同,即便引用的兩個對象的屬性徹底相同,也不能斷定爲等同; 方法
五、運算數null只能null等同; 數據
六、運算數undefined只能與undefined等同; 類型轉換
==運算符的條件: co
一、若是運算數類型相同,那麼按===運算符進行比較; 字符
二、若是一個運算數是number,另外一個是boolean類型,那麼把boolean轉換成0或1,再判斷number是否相等;
三、若是一個運算數是NaN,那麼結果必定不相等;
四、null、undefined、""、0、false相等;
五、一、true相等;
六、非空字符串、true相等;
七、若是一個運算數是number,另外一個是string類型,那麼先把string轉換爲number,再作number之間的判斷;
八、如查一個運算數是對象,另外一個是number或string類型,那麼把對象轉換爲基本類型,再作比較。對象轉換爲基本類型時,通常先調用對象的valueOf方法,以返回一個基本類型的數據。若是valueOf方法沒能返回一個基本類型的數據,那麼再調用toString方法,返回一個字符串,再判斷相等。但不同凡響的是Date對象,它是先調用toString方法返回字符串,再判斷相等。
進行相等性轉換的規則是運算數都儘可能向number類型轉換;
"1" == true;
這個表達式的執行過程是,先把字符串"1"轉換爲數值1,再把boolean值true轉換爲數值1,再判斷相等性。