0%

Javascript: 比較運算子

賦值運算子篇中有提到常常被新手搞混的「==」,這篇就會來介紹和 == 同為比較運算子的成員。

  • 大於: >

    • 判斷左式是否大於右式,與數學中的大於無異。
  • 小於: <

    • 判斷左式是否小於右式,與數學中的小於無異。
  • 等於: ==

    • 判斷左右兩邊是否相等,相等回傳true,不相等回傳false,就和數學中的相等是一樣的,值得注意的是,因為js是弱型別語言,所以在使用時他會先幫你強制轉型,所以可以用來比較數字和字串,比如說:
      1
      console.lo(1 == '1'); //執行結果: true
      很酷吧,明明兩個型態不一樣,但內容一樣比較結果就是相等。
  • 嚴格等於: ===

    • 那如果我不想要他幫我強制轉型怎麼辦?我就是要判斷他是不是不同型別啊?那沒問題喔,js有提供另一種等於,叫做嚴格等於,就跟其他強型別語言中的 == 一樣,型別不同就會回傳false。
      1
      console.log(1 == '1');//執行結果: false
  • 大於等於: >=

    • 判斷左式是否大於等於右式,這裡也是不嚴格。
  • 小於等於: <=

    • 判斷左式是否小於等於右式,這裡也是不嚴格。
  • 不等於: !=

    • 和 == 類似,這是比較左右兩式是否不等,同樣也是不嚴格比較,所以數字和字串相比可能會得到與你預期不同的結果。
      1
      console.log(1 != '1');//執行結果: false
  • 嚴格不等於: !==

    • 你如果希望上面那段code得到true的結果就可以使用這個。
      1
      console.log(1 != '1');//執行結果: true 
      這些就是全部的比較運算子,第一次接觸的js的時候常常因為不嚴格等於而遇到bug,所以大家在寫的時候最好多注意一下,不要犯了跟我一樣的錯。