淺談JavaScript中的==、===和Object.is()


1、==


等於,左右兩邊值的類型不同時,先進行類型轉換,再比較。


(1)null和undefined相等。


(2)字符串和數值比較會先將字符串轉換為數值。


(3)true會轉換成1再比較,false會轉換為0再比較。


(4)對象轉換為基礎類型的值(toString或valueOf方法)再比較。


2、===


嚴格等於,不做類型轉換,類型不同就是不等。


(1)null和undefined不等。


(2)兩個值中至少有一個是NaN時,不等。


(3)兩個值引用同一個對象或函數,相等。


3、Object.is():加強版嚴格等於,ES6新增的用來比較兩個值是否嚴格相等的方法,與===的行為基本一致,與===的不同在於:


(1)+0不等於-0。


(2)NaN等於NaN。

0 個評論

要回覆文章請先登錄註冊