JavaScript中的==與===的區別

先看一個例子

<code>alert(0 == "");/<code>

運行結果是啥?

回答是

<code>0==/<code>

的同學真心可以洗洗睡了...


JavaScript中的==與===的區別


回答是

<code>false/<code>

的同學還是很有必要繼續讀下去的...

答案是

<code>true/<code>

注意不是

<code>"true"/<code>

OK,為啥呢,很簡單,JS中==會先轉換類型,然後再判斷值是否相等。

剛剛那個""是字符串類型,而0是數字類型,所以先把""轉換為數字類型,正好""對應的數字類型為0,所以左右相等了,所以結果為true。

以下的情況也都是true,因為在判斷之前先轉換了類型。

<code>0 == ""0 == false"" == false1 == "1""1"==true/<code>

OK,那麼有時候啊,這種邏輯其實不大對。空字符串跟假有什麼關係呢?

==這種運算符也太不嚴謹了,哈哈沒關係哦,JavaScript中還有一個強大的運算符===,強大之處在於,===先判斷類型是否一樣,如果兩邊類型不同,直接就返回false,如果類型相同的情況,在去判斷值,所以在大多數情況下,===才是我們想要的那個

等於

例如:

<code>1 == "1" // 判斷結果為真1 === "1"// 判斷結果為假,因為一上來,類型就不同/<code>

所以需要對JavaScript類型加以瞭解,就能準確的判斷到底是真,還是假。

OVER。


分享到:


相關文章: