先看一個例子
<code>alert(0 == "");/<code>
運行結果是啥?
回答是
<code>0==/<code>
的同學真心可以洗洗睡了...
回答是
<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。
閱讀更多 程序員的搞笑生活 的文章
關鍵字: JavaScript 區別