1. 程式人生 > >js ==和===以及!= 和 !==的區別

js ==和===以及!= 和 !==的區別

true style cnblogs 基礎類型 family var ber 16px 運算

一、js == 與 === 的區別[轉]

1. 對於string,number等基礎類型,==和===是有區別的   1)不同類型間比較,==之比較“轉化成同一類型後的值”看“值”是否相等,===如果類型不同,其結果就是不等   2)同類型比較,直接進行“值”比較,兩者結果一樣 2. 對於Array,Object等高級類型,==和===是沒有區別的,進行“指針地址”比較 3. 基礎類型與高級類型,==和===是有區別的   1)對於==,將高級轉化為基礎類型,進行“值”比較   2)因為類型不同,===結果為false

== 和 != 比較若類型不同,先嘗試轉換類型,再作值比較,最後返回值比較結果,

=== 和 !== 只有在相同類型下,才會比較其值

 1 var num = 1; 
 2 var str = ‘1‘;
 3 var test = 1;
 4 test == num   //true 相同類型 相同值
 5 test === num  //true 相同類型 相同值
 6 test !== num  //false test與num類型相同,其值也相同, 非運算肯定是false
 7 num == str   //true  把str轉換為數字,檢查其是否相等。
 8 num != str   //false  == 的 非運算
 9 num === str  //false  類型不同,直接返回false
10 num !== str //true num 與 str類型不同 意味著其兩者不等 非運算自然是true啦

js ==和===以及!= 和 !==的區別