2012年12月10日

JavaScript 初歩のまとめ ⑥ 比較演算子

以前 算術演算子についてまとめましたが、今回は 他にも色々ある演算子の中から 比較演算子についてまとめてみます。比較演算子までしっかり復習できたら、ようやく制御文についてまとめる予定です。その辺りからプログラムらしくなってきそうですので、がんばって身につけたい所です。

比較演算子











今回も 表にまとめました。比較演算子を使った式は その式が正しい(成り立つ)場合には true 、正しくない(成り立たない)場合には false の値をそれぞれ返します。この値を画面に表示させて、練習しながら慣れていこうと思います。(表の中の「…」の箇所は「等しくない場合 false」を省略しています)



a == b

a と b が等しい場合に true 、等しくない場合に false を返します。まだ書き方に慣れていなくてつい、 イコールをひとつだけにしてしまうのですが、ひとつだと代入の意味になってしまいます。

var a = 5;
var b = 5;


var c = true;
var d = 1;

var e = 0;
var f = false;
document.write(a == b, '<br>', c == d, '<br>', e == f);

== の実行結果


a == b 、改行タグ 、c == d 、改行タグ 、e == f の順に表示しています。5と 5 が true なのはすぐ判りますが、true と 1 、false と 0 にも true が返っています。これは、true と 1 、false と 0 はそれぞれデータ型は違っても、プログラム上では同じ意味として扱われているからです。それでは ついでに、比較演算子ではないですがこんな事を試してみます。

var a = true;
var b = 1;
var c = 0;
var d = false;
document.write(a + b, '<br>', c + d);


a + b, c + d の実行結果
同じ意味に扱われているのなら 足し算してみました。結果は上の通りです。同じ意味に扱われているものなので、計算に使うと 自動でデータ型が数値型に変換されて、このような結果が返るわけです。



a != b

a と b が等しくない場合に true 、等しい場合に false を返します。a == b を逆転させた条件です。


var a = 5;
var b = 5;

var c = true;
var d = 1;

var e = 0;
var f = false;

document.write(a != b, '<br>', c != d, '<br>', e != f);

!= の実行結果














== のときと条件が逆なので、結果も逆になっています。




a > b

a が b よりも大きければ true 、大きくなければ false を返します。

var a = 5;
var b = 5;
var c = 3;
var d = 1;
document.write(a > b, '<br>', c > d);

> の実行結果














> には、 同じ数は含まれませんので 5 > 5 は false になります。



a < b

a が b よりも小さければ true 、小さくなければ false を返します。

var a = 5;
var b = 5;
var c = 3;
var d = 1;
document.write(a < b, '<br>', c < d);


< の実行結果















さっきと同じく < にも同じ数は含まれません。




a >= b

a が b と同じか大きい場合に true 、a が b より小さい場合に false を返します。この条件は 数学等でいう「以上」と同じです。

var a = 5;
var b = 5;
var c = 3;
var d = 1;
document.write(a >= b, '<br>', c >= d);


>= の実行結果














>= には 同じ数も含まれますので、true が返っています。あと、この比較をする時に、つい=> こう書いてしまう事があって 同じようなものかと思いますが、エラーになります。



a<= b

a が b と同じか小さい場合に true 、a が b より大きい場合に false を返します。この条件は 数学等でいう「以下」と同じです。


var a = 5;

var b = 5;

var c = 3;

var d = 1;

document.write(a <= b, '<br>', c <= d);

<= の実行結果














<= には 同じ数も含まれますので、true が返っています。これもさっきと同じで、=< こう書いてしまうと エラーになります。




a === b

a と b がデータ型まで含めて等しい場合に true 、データ型まで含めて等しくない場合に false を返します。

var a = 5;
var b = 5;


var c = true;
var d = 1;
var e = 0;
var f = '0';
document.write(a === b, '<br>', c === d, '<br>', e === f);

=== の実行結果














一番最初に試した == よりも より厳密に データ型まで含めて同じかどうかを 判定します。
== のときは true と 1 には true が返っていましたが、今回は false が返っています。
また、0 と '0' も数値型と文字列型 で違うので、false が返っています。

少し長くなりましたが、以上で 比較演算子は 一通り試しました。これは制御文の 条件によく使うものなので、次回はやっと制御文について (なるべく間を空けないうちに)まとめようと思います。

0 件のコメント:

コメントを投稿