先看一個例子
alert(0 == "");
1
運作結果是啥?
回答是0==的同學真心可以洗洗睡了…
回答是false的同學還是很有必要繼續讀下去的…
答案是true,注意不是'true'也不是"true"。
OK,為啥呢,很簡單,JS中==會先轉換類型,然後再判斷值是否相等。
剛剛那個"“是字元串類型,而0是數字類型,是以先把”“轉換為數字類型,正好”"對應的數字類型為0,是以左右相等了,是以結果為true。
以下的情況也都是true,因為在判斷之前先轉換了類型。
0 == ""
0 == false
"" == false
1 == "1"
"1"==true
2
3
4
5
OK,那麼有時候啊,這種邏輯其實不大對。空字元串跟假有什麼關系呢?這種運算符也太不嚴謹了,哈哈,沒關系哦,JavaScript中還有一個強大的運算符**=,強大之處在于,===先判斷類型是否一樣,如果兩邊類型不同,直接就傳回false,如果類型相同的情況,在去判斷值,是以在大多數情況下,===才是我們想要的那個等于**。
例如:
1 == "1" // 判斷結果為真
1 === "1"// 判斷結果為假,因為一上來,類型就不同
是以需要對JavaScript類型加以了解,就能準确的判斷到底是真,還是假。