Javascript中雙等號「==」和三等號「===」的區別

咱們會在一些代碼中看到遇到「===」和「==」的寫法,三等號與雙等號有什麼不一樣嗎?在JavaScript中,===表示「恆等於」,==表示「等於」。=表示「賦值」。 ip

  • =:賦值,在邏輯運算時也有效;
  • ==:等於運算,可是不比較值的類型;
  • ===:徹底等於運算,不只比較值,並且還比較值的類型,只有二者一致才爲真。

運行體會一下如下的代碼就會清楚了:
alert(0 == ""); // true
alert(0 == false); // true
alert("" == false); // true
alert(0 === ""); // false
alert(0 === false); // false
alert("" === false); // false 語言

在複雜一些: 類型轉換

JavaScript 是弱類型語言,這就意味着,等於操做符會爲了比較兩個值而進行強制類型轉換。注意0的相等運算,例如:
""           ==   "0"           // false  
0            ==   ""            // true  
0            ==   "0"           // true  
false        ==   "false"       // false  
false        ==   "0"           // true  
false        ==   undefined     // false  
false        ==   null          // false  
null         ==   undefined     // true  
" \t "    ==   0             // true  background

而恆等於不像普通的等於操做符,不會進行強制類型轉換。這樣的話上述的結果就不太相同了:
""           ===   "0"           // false  
0            ===   ""            // false  
0            ===   "0"           // false  
false        ===   "false"       // false  
false        ===   "0"           // false  
false        ===   undefined     // false  
false        ===   null          // false  
null         ===   undefined     // false  
" \t "    ===   0             // false  undefined

相關文章
相關標籤/搜索