之前使用javascript的時(shí)候,時(shí)不時(shí)的會(huì)遇到使用 == 和 === 這兩個(gè)符號(hào)來判斷兩個(gè)變量是否相等。但是對(duì)于這兩個(gè)符號(hào)的差別一直沒有去調(diào)查。今天又遇到了 === 這個(gè)符號(hào),所以決定去查一下,究竟這兩者有什么區(qū)別。
在javascript中有==和===兩種比較運(yùn)行符,那么他們有什么區(qū)別呢?
一、對(duì)于string,number等基礎(chǔ)類型,==和===是有區(qū)別的
1)不同類型間比較,==之比較“轉(zhuǎn)化成同一類型后的值”看“值”是否相等,===如果類型不同,其結(jié)果就是不等
2)同類型比較,直接進(jìn)行“值”比較,兩者結(jié)果一樣
二、對(duì)于array,object等高級(jí)類型,==和===是沒有區(qū)別的
當(dāng)一個(gè)變量定義為arrary和一個(gè)變量定義為object類型時(shí),但是其值相同時(shí),==和===比較的結(jié)果是相同的,因?yàn)樗沁M(jìn)行“指針地址”比較
三、基礎(chǔ)類型與高級(jí)類型,==和===是有區(qū)別的
1)對(duì)于==,將高級(jí)轉(zhuǎn)化為基礎(chǔ)類型,進(jìn)行“值”比較
2)因?yàn)轭愋筒煌?==結(jié)果為false
更多信息請(qǐng)查看IT技術(shù)專欄