“JavaScript” > “javascript”は何を返すか? – 文字列と比較演算子 –

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西”となります。

Related Posts