JavaScript 雙等號 vs. 三等號

過去學過 Java、C 與 Python 都沒遇過這問題,沒想到在學習 JavaScript 時會遇到三等號與雙等號的問題,滿新奇的!

等於判斷

JavaScript 有三種「等號」的運算子,分別是:

一個等號 = :這是賦值運算子,把右方的值賦予左方。
兩個等號 == :比較運算子,檢查左右方的值是否相等。
三個等號 === :比較運算子,檢查左右方的型別與值是否都相等。

範例

  • 99 == “99”
    • 回傳 true,因為 JavaScript 在做 == 的比較運算時,會自動先把右邊的 string 型別轉換成 int,再將兩邊的值拿來比較,因此兩邊的值一樣就會回傳 true。
  • 99 === “99”
    • 回傳 false,因為 === 除了比較兩邊的值是否相同之外,也會比較兩者型態是否相同。例子之中,左邊是數字,而右邊是字串,所以會判定為不相等。

結論

== :比較前會先自動轉換型別,再比較雙方的「值」。
=== :嚴格比較,會比較「型別」與「值」。

以上資源是我自己整理過後的筆記,若有錯誤歡迎隨時和我聯繫。