咱們會在一些代碼中看到遇到「===」和「==」的寫法,三等號與雙等號有什麼不一樣嗎?在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