Javascript中“==”與“===”的區別

一劍平江湖發表於2018-05-26


在Javascript中有"=="和"==="兩種比較執行符,那麼他們有什麼區別呢?

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

1)不同型別間比較,==之比較“轉化成同一型別後的值”看“值”是否相等,===如果型別不同,其結果就是不等
2)同型別比較,直接進行“值”比較,兩者結果一樣
 
二、對於Array,Object等高階型別,==和===是沒有區別的
當一個變數定義為Arrary和一個變數定義為Object型別時,但是其值相同時,==和===比較的結果是相同的,因為它是進行“指標地址”比較
 
三、基礎型別與高階型別,==和===是有區別的
1)對於==,將高階轉化為基礎型別,進行“值”比較
2)因為型別不同,===結果為false

相關文章