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

一、對於string,number等基礎類型,==和===是有區別的html

1)不一樣類型間比較,==之比較「轉化成同一類型後的值」看「值」是否相等,===若是類型不一樣,其結果就是不等
2)同類型比較,直接進行「值」比較,二者結果同樣
 
二、對於Array,Object等高級類型,==和===是沒有區別的
進行「指針地址」比較
 
三、基礎類型與高級類型,==和===是有區別的
1)對於==,將高級轉化爲基礎類型,進行「值」比較
2)由於類型不一樣,===結果爲false
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var num = 1;
 
var str = '1';
 
var test = 1;
 
test == num   //true 相同類型 相同值
 
test === num  //true 相同類型 相同值
 
test !== num  //false test與num類型相同,其值也相同, 非運算確定是false
 
 
num == str   //true  把str轉換爲數字,檢查其是否相等。
 
num != str   //false  == 的 非運算
 
num === str  //false  類型不一樣,直接返回false
 
num !== str  //true   num 與 str類型不一樣 意味着其二者不等 非運算天然是true啦

== 和 != 比較若類型不一樣,先償試轉換類型,再做值比較,最後返回值比較結果 。post

而 
=== 和 !== 只有在相同類型下,纔會比較其值。
相關文章
相關標籤/搜索