不管是java、c++、php都有相等運(yùn)算符與等同運(yùn)算符,當(dāng)然javasript也不例外。
下面說說吧。
==運(yùn)算符和===運(yùn)算符用來檢測兩個(gè)值是否相等,它們采用了具有同一特質(zhì)的兩個(gè)不同定義。這兩個(gè)運(yùn)算符都接受任意類型的運(yùn)算數(shù),如果兩個(gè)運(yùn)算數(shù)相等,它們都返回true,否則都返回false,===運(yùn)算符是等同運(yùn)算符,它采用嚴(yán)格的同一特質(zhì)定義檢測兩個(gè)運(yùn)算數(shù)是否完全相同,親們注意是完全相同哦。==運(yùn)算符是相等運(yùn)算符,它采用比較寬松的同一特質(zhì)定義比較兩個(gè)運(yùn)算數(shù)是否相等。
這樣概念有個(gè)基本認(rèn)識(shí)。
下面說下具體判定兩個(gè)值是相等情況吧。
===運(yùn)算符兩個(gè)值比較
1,如果兩個(gè)值類型不同,它們就不相同
2,如果兩個(gè)值的類型是數(shù)字,而且值相同,那么除非中間有一個(gè)或者兩個(gè)都是(NaN)這種情況它們不是等同,否則它們是等同
3,如果兩個(gè)值是字符串,而且串中同一個(gè)位置上的字符完全相同,那么它們就完全等同,如果字符串的長度或者內(nèi)容不同,那么它們就不是等同的咯
==運(yùn)算符兩個(gè)值比較
1,如果兩個(gè)值的類型相同,那么就檢測它們的等同性。如果兩個(gè)值完全相同,它們就相等。如果它們不完全相同,它們就不相等了
2,如果兩個(gè)值的類型不同,它們?nèi)匀挥锌赡芟嗟?舉幾個(gè)例子)
1)如果一個(gè)值是null,另外一個(gè)值是undefined,它們相等
2)如果一個(gè)值是數(shù)字,另外一個(gè)值是字符串,把字符串轉(zhuǎn)換成數(shù)字,再用轉(zhuǎn)換后的值比較
3)如果一個(gè)值是true,將它轉(zhuǎn)化成1,再進(jìn)行比較。如果一個(gè)值為false,把它轉(zhuǎn)化為0,再進(jìn)行比較
4)如果一個(gè)值是對象,另外一個(gè)值是數(shù)字或字符串,將對象轉(zhuǎn)換成原始類型的值,再比較。