天天看點

php雙等号和三等号,Javascript中雙等号“==”和三等号“===”的差別

我們會在一些代碼中看到遇到“===”和“==”的寫法,三等号與雙等号有什麼不同嗎?在JavaScript中,===表示“恒等于”,==表示“等于”。=表示“指派”。

=:指派,在邏輯運算時也有效;

==:等于運算,但是不比較值的類型;

===:完全等于運算,不僅比較值,而且還比較值的類型,隻有兩者一緻才為真。

運作體會一下以下的代碼就會清楚了:

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

而恒等于不像普通的等于操作符,不會進行強制類型轉換。這樣的話上述的結果就不太相同了:

""           ===   "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