淺談===和==

javascript中有兩組相等的運算符:===(嚴格相等),!==(嚴格不相等)和==(相等),!=(不等)。


===和!==會比較兩個基礎類型值是否相等,或則兩個複雜對象是否指向同一個地址。

"111"===111   //false。

111 ===111   //true。


==和!=則會先把比較值進行類型轉化,轉化爲想同類型後再進行比較。因此只有在兩個比較值類型一致時,它才能與第一組相等運算符等同。


==和!=在比較時的類型比較複雜,具體如下:

undefined和null與自己比較時結果爲true,他們相互比較的結果也爲true,但與其他類型比較時爲false。原始類型(數值,布爾類型和字符類型)進行比較時,會先轉換爲數值類型再進行比較,對象和原始類型比較時,會先將對象轉化爲原始類型,然後再進行比較。實例:

null==undefined;    //true;


0==null;     //false;


false=='0';    //true;


false=='false';    //false


'\n123\t'==123     //true


var p = {toString:function(){return '1'}}
p==1 ;    //true;


爲了避免出現隱含的錯誤,推薦使用===和!==運算。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章