比較運算子:嚴謹模式 `===`

「嚴謹模式」的比較運算子,有什麼差別呢?

使用「==

🎃 當 JavaScript 使用「==」來「做比較」時,會自動幫我「轉型」

🍋 把“字串”轉型為「數字」

例如:「數字1」會等於「字串'1'

使用「===

🎃 當 JavaScript 使用「===」來「做比較」時,會 先判斷「型別」,再判斷「內容」的正確性

🍋 如果「型別」不同,就會直接回傳「false」
🍋 更加嚴謹的做判斷(不會幫我“轉型”)

例如:「數字1」不等於「字串'1'

「0, 1」

🎃 在 JavaScript 的世界中:

🍋 會把「1」轉型成「true」(1有“開啟、ok”的意思)

🍋 會把「0」轉型成「false

–> 因此,下列的判斷都會回傳 true

但是,如果是使用「===」來做比較,就不會自動轉型了

–> 「布林值」不等於「數字」,所以都會回傳 false