JavaScriptの比較演算子について書いています。
最初に比較演算子について解説して、下記の比較演算子を使用したサンプルコードを書きました。
・両方の値が同じでない(!=, !==)
・右より左が少ない(`<`)
・右より左が少ないか等しい(`<=`)
・右より左が大きい(`>`)
・右より左が大きいか等しい(`>=`)
JavaScriptの比較演算子について
比較演算子は2つの値を比較するための演算子です。
if文などで2つの値を比較して、true
かfalse
の論理値を受け取って処理を分岐したりするときに使います。
例えば、下記のように使うことができます。
let text = 'hello'
if (text === 'hello') {
console.log('textはhelloです。');
}
最初にtext
変数に「hello
」という文字列を代入しました。
次の処理で、if文の条件で比較演算子「===
」を使っています。
これでtext
変数の値が文字列の「hello
」と同じか比較しています。
同じだったときにはtrue
が返ってきて、違うときにはfalse
が返ってきます。
今回は同じ文字列の「hello
」が、text
変数に代入されているのでtrue
が返ってきます。
結果、プログラムを実行すると、if文の中の処理が実行されて「textはhelloです。
」が出力されて処理が終了します。
型まで比較するか、自動変換後に比較するか
先ほどのプログラムで使った、イコール3つの比較演算子「===
」を使ったときには、値の型まで参照して比較します。
ですが、イコール2つの比較演算子を使ったときには、型が違う場合には変換して比較するようになります。
例えば、下記のようなときです。
まずは、イコール3つで、数値の「100
」と文字列の「100
」を比べました。
if (100 === '100') {
console.log('同じです。');
} else {
console.log('違います。');
}
上記のコードでは型が違うので、違うと判定されてfalse
が返ってきます。
結果、「違います。
」が出力されます。
比較演算子の箇所を、イコール2つに変えて比較してみます。
if (100 == '100') {
console.log('同じです。');
} else {
console.log('違います。');
}
上記のコードではイコール2つの比較演算子を使いました。
型が違うときには型を変換して、同じかを比べます。
数値を文字列に変換すると同じ値になります。
結果、「同じです。
」が出力されます。
このように、イコール2つの比較演算子「==
」のときには、型を確認して違ったら変換して比較します。
他にイコール2つの比較演算子「==
」で、左辺と右辺が違うのにtrue
になるパターンは下記です。
console.log('1' == 1); // true
console.log(1 == '1'); // true
console.log(0 == false); // true
console.log(null == undefined); // true
意図した動作にならない可能性があるので、コードを書くときには、気をつけて使うようにしましょう。
JavaScriptの比較演算子を使ったサンプルコード6選
イコールを含めた、比較演算子を使ったサンプルコードを書いてみました。
両方の値が同じ(==, ===)
イコール2つ「==
」とイコール3つ「===
」の比較演算子で比較したときには、右辺と左辺の値が同じかどうかを比較します。
先ほど書いたように、イコール2つのときには値が違う場合には型変換して比較されます。
イコール3つの場合には型まで比較してくれます。
両方の演算子を使って、比較するサンプルを書いてみました。
if (8 == '8') {
console.log('8 == "8"は同じ')
} else {
console.log('8 == "8"は違う')
}
if (8 === '8') {
console.log('8 === "8"は同じ')
} else {
console.log('8 === "8"は違う')
}
最初に数値の「8
」と文字列の「'8'
」を比較しています。
イコール2つのときには、型変換して比較するので、true
が返ってきます。
結果、「8 == "8"は同じ
」が出力されます。
次のif文では、同じ値をイコール3つで比較しています。
イコール3つのときには、型まで確認して比較するので、false
が返ってきます。
結果、「8 === "8"は違う
」が出力されます。
両方の値が同じでない(!=, !==)
左辺と右辺の両方の値が同じではないときにtrue
を返したいときには、比較演算子の「!=
」か「!==
」を使います。
イコールが1つだけ(!=
)の方は、型変換して比較して、違う場合にはtrue
になります。
イコールが2つのとき(!==
)には、型まで確認して比較します。
例えば、下記のように使います。
if (8 != '8') {
console.log('8 != "8"はtrue')
} else {
console.log('8 != "8"はfalse')
}
if (8 !== '8') {
console.log('8 !== "8"はtrue')
} else {
console.log('8 !== "8"はfalse')
}
最初に数値の「8
」と文字列の「'8'
」を比較しました。
ふたつの値は型変換すると、同じ値になります。
「!=
」を使っているので、両方の値が違うときにtrue
が返ってきます。
そのため、ここではfalse
が返ってきて、「8 != "8"はfalse
」が出力されます。
その次のif文では「!==
」を使って、同じ値を比較しました。
「!==
」は同じでないときにtrue
が返ってきます。
イコール2つのときには型まで確認するので、2つの値は同じではないです。
そのため、true
になって「8 !== "8"はtrue
」が出力されます。
右より左が少ない(‘<‘)
左側の値が、右側の値より少ないことを比較したいときには「<
」演算子を使います。
例えば、下記のように使うことができます。
if (7 < 8) {
console.log('8より7は少ない');
}
if文で数値の「7
」と「8
」を比べています。
今回は「<
」で比較しています、条件に合うのでtrue
が返ってきます。
条件に合わないときにはfalse
が返ってきます。
結果、「8より7は少ない
」が出力されて処理が終了します。
右より左が少ないか等しい(‘<=’)
左側の値が、右側の値より少ないか等しいことを比較したいときには「<=
」演算子を使います。
先ほどの演算子と違うのは「等しい
」ときにもtrue
が返ってくることです。
例えば、下記のように使うことができます。
if (7 <= 8) {
console.log('8より7は少ない');
}
if (7 <= 7) {
console.log('7と7は同じ');
}
最初に先ほどと同じように、if文で数値の「7
」と「8
」を比べています。
「<=
」で比較しています、「7
」より「8
」の方が少ないのでtrue
が返ってきます。
次の処理のif文で、数値の「7
」と「7
」を比べています。
「<=
」で比較しているので、等しい値のときには、こちらもtrue
が返ってきます。
結果、console.log
で下記のように出力されて、どちらもtrue
になったことが確認できました。
8より7は少ない
7と7は同じ
右より左が大きい(‘>’)
左側の値が、右側の値より大きいことを比較したいときには「>
」演算子を使います。
例えば、下記のように使うことができます。
if (7 > 6) {
console.log('6より7は大きい');
}
if文で数値の「7
」と「6
」を比べています。
今回は「>
」で比較しています、条件に合うのでtrue
が返ってきます。
条件に合わないときにはfalse
が返ってきます。
結果、「6より7は大きい
」が出力されて処理が終了します。
右より左が大きいか等しい(‘>=’)
左側の値が、右側の値より大きいか等しいことを比較したいときには「>=
」演算子を使います。
先ほどの演算子と違うのは「等しい
」ときにもtrue
が返ってくることです。
例えば、下記のように使うことができます。
if (7 >= 6) {
console.log('6より7は大きい');
}
if (6 >= 6) {
console.log('6より6は同じ');
}
最初に先ほどと同じように、if文で数値の「7
」と「6
」を比べています。
「>=
」で比較しています、「6
」より「7
」の方が大きいのでtrue
が返ってきます。
次の処理のif文で、数値の「6
」と「6
」を比べています。
「>=
」で比較しているので、等しい値のときには、こちらもtrue
が返ってきます。
結果、console.log
で下記のように出力されて、どちらもtrue
になったことが確認できました。
6より7は大きい
6より6は同じ
JavaScriptの比較演算子のまとめ
今回紹介した比較演算子を表にまとめてみました。
演算子 | 内容 | trueになるパターン |
---|---|---|
v1 == v2 | 型変換後に比較して等しい場合にはtrueになる | 10 == “10” |
v1 === v2 | 型変換せずに比較して等しい場合にはtrueになる | 10 === 10 |
v1 != v2 | 型変換後に比較して等しくない場合にはtrueになる | 10 != “9” |
v1 !== v2 | 型変換せずに比較して等しくない場合にはtrueになる | 10 !== 9 |
v1 < v2 | 右側より左側が少ない場合にはtrueになる | 9 < 10 |
v1 <= v2 | 右側より左側が少ないか、同じ値になる場合にはtrueになる | 10 <= 10 または 10 <= 11 |
v1 > v2 | 右側より左側が大きい場合にはtrueになる | 10 > 9 |
v1 >= v2 | 右側より左側が大きいか、同じ値になる場合にはtrueになる | 10 >= 10 または 11 >= 10 |
終わりに
今回はJavaScriptの比較演算子について解説した後に、サンプルコードを紹介してみました。
同じか比較するイコール2つ「==
」のパターンと、イコール3つ「===
」のパターンで挙動が違いました。
また、同じでないことを比較するときにも、イコールが2つ・3つで挙動が変わってきました。
この辺りの挙動が間違えやすそうなので、気をつけて使っていくようにしましょう。
コメント