==運算子和===運算子用來偵測兩個值是否相等,它們採用了具有相同特質的兩個不同定義。這兩個運算子都接受任意類型的運算數,如果兩個運算數相等,它們都會傳回true,否則都傳回false,===運算子是等同運算符,它採用嚴格的相同特質定義來偵測兩個運算數是否完全相同,親們注意是完全相同哦。 ==運算子是相等運算符,它採用比較寬鬆的相同特質定義來比較兩個運算數是否相等。
這樣概念有個基本認識。
下面說下具體判定兩個值是相等情況吧。
===運算子兩個值比較
1,如果兩個值類型不同,它們就不相同
2,如果兩個值的型別是數字,而且值相同,那麼除非中間有一個或兩個都是(NaN)這種情況它們不是等同,否則它們是等同
3,如果兩個值是字串,而且串中同一個位置上的字元完全相同,那麼它們就完全等同,如果字串的長度或內容不同,那麼它們就不是等同的咯
==運算子兩個值比較
1,如果兩個值的型別相同,那麼就偵測它們的等同性。如果兩個值完全相同,它們就相等。如果它們不完全相同,它們就不相等了
2,如果兩個值的型別不同,它們仍然有可能相等(舉幾個例子)
1)如果一個值是null,另一個值是undefined,它們相等
2)如果一個值是數字,另外一個值是字串,把字串轉換成數字,再用轉換後的值比較
3)如果一個值是true,將它轉換成1,再進行比較。如果一個值為false,把它轉換為0,再進行比較
4)如果一個值是對象,另一個值是數字或字串,將對象轉換成原始型別的值,再比較。