等值比較就是指比較兩個表達式(或操作數)的值是否相等,比較方法有:1、使用“==”運算符,語法“a==b”;2、使用“===”運算符,語法“a===b”;3、使用“Object.is()”方法,語法“Object.is(a , b)”。
本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
javascript中的等值比較
在javascript中,等值比較就是指比較兩個表達式(或操作數)的值是否相等。
我們都知道 JavaScript 是松散類型,并且在某些情況下,當使用 ==
來做等值比較時,會給你意想不到的結果。這是因為使用 ==
做等值比較時,JavaScript 會對2個比較的值進行隱式強制轉換。
0 == ' ' //true null == undefined //true [1] == true //true
所以 JavaScript 還為我們提供了三個等號運算符 ===
,它更嚴格,不強制轉換比較值,但實用 ===
比較有些時候也不是最好的解決方案:
NaN === NaN //false
有個好消息是,在 ES6 中有一個新的更好更準確的辦法 Object.is()
,它與 ===
具有相同的功能,而且在一些特殊情況下表現良好:
Object.is(0 , ' '); //false Object.is(null, undefined); //false Object.is([1], true); //false Object.is(NaN, NaN); //true
下面這張圖詳細說明了 ==
,===
和 Object.is()
等值比價的異同:
【