超入門 JavaScript ⑧ ~比較演算子~

前回の超入門⑦では、制御構文に入り、分岐( if )について学習しました。
分岐をプログラムするためには、処理を分かれさせるための条件が必要です。
条件に合致するのか、しないのか、その式を書くために必要不可欠なもの。
今回は比較演算子についてです。

まずは、下表に一覧として比較演算子をまとめます。

比較演算子

では1つ1つ、使い方とともに見ていきましょう。
引用となっている説明文は、JavaScript | MDN から引用させていただいています。

1.等価演算子( == )

等価演算子は、2 つのオペランドが同じ型でないならばオペランドを変換して、それから厳密な比較を行います。両方のオペランドがオブジェクトならば、 JavaScript は内部参照を比較するので、オペランドがメモリ内の同じオブジェクトを参照するときに等しくなります。

文章での説明だけでは、なかなか理解が難しいと思うので、実際にサンプルを作成し、動かしながら挙動を覚えていきましょう。

以下のプログラムを作成し、動作結果を確認してみてください。
非常に短いプログラムなので、HTMLコードも含めて全文を掲載します。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Sample</title>
<script>
// 1 と 1 が等価であるか判定し、結果を judge 変数に代入
var judge = 1 == 1;

alert(judge); // <- さあ、ここで「true」と出るか「false」出るか!
</script>
</head>
<body>
</body>
</html>

上記プログラムの結果を先に必ず予想してから、実行してみましょう。

**********************************
仮説を立てておいて、それから検証することで、結果が自身の仮説と異なっていた際に、どこが間違っていたのかを探求することにより記憶の定着率は格段に上がります。
**********************************

それでは、<script></script>内を書き換えて、他のパターンを試してみましょう。

<script>
// 文字列である'1' と 1 が等価であるか判定し、結果を judge 変数に代入
var judge = '1' == 1;

alert(judge); // <- さあ、ここで「true」と出るか「false」出るか!
</script>

上記プログラムの結果を先に必ず予想してから、実行してみましょう。

さて、結果は…。

画像2

ドドーン!
これは、意外だったのではないでしょうか?

'1' == 1 の判定が「true」になるのには、もちろん理由があります。
Javascriptでは、文字列と数値を比較する際、文字列は数値型(Number)に変換されます。
変換後の値同士が比較されるので、今回の場合は 1 == 1 として比較された、というわけです。

2.不等価演算子( != )

不等価演算子は、オペランド同士が等しくないならば真を返します。2 つのオペランドが同じ型でないならば、JavaScript は適切な型にオペランドを変換して比較しようとします。両方のオペランドがオブジェクトならば、JavaScript は内部参照を比較するので、オペランドがメモリ内の異なるオブジェクトを参照するときには等しくなりません。

不等価演算子についても、実際にプログラムを作り、動かしながら挙動を理解しましょう。

<script>
// 1 と 1 が不等価であるか判定し、結果を judge 変数に代入
var judge = 1 != 1;

alert(judge); // <- さあ、ここで「true」と出るか「false」出るか!
</script>

上記サンプル以外にも、さまざまなデータを比較してみることで、理解がさらに深まります。
3の厳密等価演算子 以降は、自身でパターンを変えながら、サンプルを作成してみてください。

3.厳密等価演算子( === )

厳密等価演算子は、型変換なしでオペランド同士が (上に示した通り) 厳密に等しければ真を返します。

「真」とは真偽値の「真」で、「true」のことです。
「false」は「偽」とも呼ばれます。

等価演算子( == )とは異なり、型変換なしで判定するため、
'1' === 1 の判定は「false」になります。

4.厳密不等価演算子( !== )

厳密不等価演算子は、オペランド同士が等しくないか、型が等しくない、あるいはその両方ならば真を返します。

5.大なり演算子( > )

大なり演算子は、左オペランドが右オペランドより大きければ、真を返します。


6.大なりイコール演算子( >= )

大なりイコール演算子は、左オペランドが右オペランド以上ならば、真を返します。

7.小なり演算子( < )

小なり演算子は、左オペランドが右オペランドより小さければ、真を返します。

8.小なりイコール演算子( <= )

小なりイコール演算子は、左オペランドが右オペランド以下ならば、真を返します。

以上で、比較演算子についての説明は終わりです。

次回は、制御構文の最難関ステージ「回帰(繰り返し)」に入りたいところなのですが、繰り返しを使いこなすために必須となる知識である「配列」について学習していきましょう。

それでは良いプログラミング・ライフを!


この記事が気に入ったらサポートをしてみませんか?