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