Javascript之「==」與「===」比較運算子解析表

Javascript的弱型别讓我憎恨不已,但不得不承認它是當今世界上最流行的程式語言之一。在「==」與「===」比較運算子的差異性上,這問題已經被討論多年,今天發現有網站用很明顯的圖示表示其差異性,真的是創意滿分,令人激賞不已,因此將其記錄在網頁上供給大家參考!

其實說穿了「===」就是會幫你比較【TYPE】而已,但是「==」會比較雞婆一點,除了比較完【TYPE】之外,他還會幫你轉成【VALUES】再比一次,這部份造成效能比較緩慢之外,也會出現原本程式設計師認為「明明就不一樣卻傳回true」的問題,進而產生不可預期之錯誤!還是看不懂的話,請參考下列比較表:

Javascript「==」運算子

各種情境下之比對表如下:

Javascript「===」運算子

各種情境下之比對表如下,是不是簡直清清爽爽啊!

Javascript「if」運算子

有很多網站的JS故意會有參雜語法(Salt)混於其中,例如寫出「if([[]]){}」這是怎樣?各種情境下之比對表如下:

原始出處:JavaScript Equality Table

Javascript Equality Comparison Operator