Javascript中雙等號(hào)“==”和三等號(hào)“===”的區(qū)別

2013-03-01 17:56:10來(lái)源:西部e網(wǎng)綜合作者:

我們會(huì)在一些代碼中看到遇到“===”和“==”的寫(xiě)法,三等號(hào)與雙等號(hào)有什么不同嗎?在JavaScript中,===表示“恒等于”,==表示“等于”。=表示“賦值”。

我們會(huì)在一些代碼中看到遇到“===”和“==”的寫(xiě)法,三等號(hào)與雙等號(hào)有什么不同嗎?在JavaScript中,===表示“恒等于”,==表示“等于”。=表示“賦值”。

  • =:賦值,在邏輯運(yùn)算時(shí)也有效;
  • ==:等于運(yùn)算,但是不比較值的類(lèi)型;
  • ===:完全等于運(yùn)算,不僅比較值,而且還比較值的類(lèi)型,只有兩者一致才為真。

運(yùn)行體會(huì)一下以下的代碼就會(huì)清楚了:
alert(0 == ""); // true
alert(0 == false); // true
alert("" == false); // true
alert(0 === ""); // false
alert(0 === false); // false
alert("" === false); // false

在復(fù)雜一些:

JavaScript 是弱類(lèi)型語(yǔ)言,這就意味著,等于操作符會(huì)為了比較兩個(gè)值而進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換。注意0的相等運(yùn)算,例如:
""           ==   "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 

而恒等于不像普通的等于操作符,不會(huì)進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換。這樣的話(huà)上述的結(jié)果就不太相同了:
""           ===   "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 

關(guān)鍵詞:Javascript

贊助商鏈接: