2つの文字列が一致するかを判定するには”==”もしくは”===”を使います。
console.log("abc" === "abc"); //true
では、”>”や”<“といった比較演算子を使った場合には、どのような挙動になるのでしょうか?例えば、”JavaScript”と”javascript”の2つの文字を比較してみましょう。
console.log("JavaScript" > "javascript"); //false console.log("JavaScript" < "javascript"); //true
“>”と”<“とで結果が異なりました。何かしらのルールがありそうです。
比較演算子は文字コードの大きさを比較する
実は比較演算子で文字列を比較すると、文字コードの値の大きさで判断されます。上の例で1文字目の”J”と”j”の文字コード見てみると、大文字の”J”は74、小文字の”j”は106となります。
console.log("JavaScript".charCodeAt(0)); //74 console.log("javascript".charCodeAt(0)); //106
なので、この2つの文字列の大小関係は “JavaScript” < “javascript”となるのです。
別の例を見てみましょう。”JR東”と”JR西”を比較してみます。
console.log("JR東" > "JR西"); //false console.log("JR東" < "JR西"); //true
この場合は、3文字目が異なりますので、”東”と”西”の文字コードを見てます。
console.log("JR東".charCodeAt(2)); //26481 console.log("JR西".charCodeAt(2)); //35199
“東”の文字コードの値のほうが小さいので、”JR東” < “JR西”となります。