JS学習記録第7回 比較演算子について
こんにちは。
早くもJSの学習記録が7回になりました。
(思うように続いている!)
今回はプログラミングにおいてよく使用するであろう比較演算子についてまとめてみようと思います!
比較演算子とは
比較演算子とは、文字通り左右両方を比較する演算子のことをいいます。
例えば、
x < 5 ←数字のxと5を比較。xが5より小さい場合。
などです。大なり小なりなどは中学校の数学でよく使ったかと思います。
これをif文を使用して、プログラム的に記述します。
if(1 < 5){
console.log(true);
}else{
console.log(false);
}
上記の記述は、1が5より小さい場合、trueを返し、そうでない場合はfalseを返すという意味になります。
if=もし〜ならば
else=そうでなければ
という意味です。上記では1は5より小さいので、trueの値が返って来ます。
==と===の違いについて
プログラミングでは、=等しいという記述方法に==、===など複数のイコールが存在します。=は代入するという意味なのですが、
では==と===は何が異なるのでしょうか?
まず、下記のソースを確認してみます。
if(1 == '1'){
console.log('true');
}else{
console.log('false');
}
上記はもし1が'1'と等しいならばtrue、そうでなければfalseを返すように記述しています。
上記の出力を確認するとtrueというのが返って来ているのが分かります。
しかし、これが===の場合ではどうでしょうか?
if(1 === '1'){
console.log('true');
}else{
console.log('false');
}
なんとfalse、正しくないよと返ってきます。
これはどういうことかと言いますと、
===は厳密に正しいかを判断しているのが原因です。
上記の式をよ〜く見てみると、1 === '1'と記述されています。
プログラミング的に、''で囲むとその数字は文字列と認識されてしまいます。
簡単にいうと、左の1は数字の1、右の1は文字の1ということになります。
うまくまとまっていますかね?_:(´ཀ`」 ∠):
まぁ、===の方が厳しく判定しますよという意味です!!!
プログラミングでの!(ビックリマーク)の意味
プログラミングでは「!」はそうでないときの意味を持ちます。
そのため、上記の記述に!を足すと、
if(1 !== '1'){
console.log('true');
}else{
console.log('false');
}
trueと返って来ます。
===が厳密判定なのですが、!==も厳密判定のようです!
===の否定版が!==ということです。!===かと思いましたが...違うんですね。
==の否定版が!=のようです。
プログラミングでのtrue、falseの意味
最後にプログラミングでのtrue、falseの意味をみて行こうかと思います!!
文字通り、trueは正しい、falseは異なるという意味は正しいです。
では、true、falseは何を返答しているのでしょうか。
んー、文章が分かりづらくすみません。。自分でもよくまとめられていない気が( i _ i )
if(1 === Number(true)){
console.log('true');
}else{
console.log('false');
}
このような記述があった場合、trueで返答されるでしょうか?
falseで返答されるでしょうか?
実はこれtrueで返答されます。
true(正しい)には元々1という数字が隠されています。
逆にfalse(異なる)には0という数字が隠されているようですね!
元々プログラミングは0と1の組み合わせで表現されています。
&&と||
&&←〜かつ〜
||←〜あるいは〜
の意味をそれぞれ持ちます!
例えば、
const num = 10;
if(num === 10 && num > 5){
console.log(true);
}else{
console.log(false);
}
こういう感じで使用することができます。
変数numに10を代入する。
もし変数numが10の値に等しく、数字の5より大きければ正を返すという意味になります。
逆にこれが||ならば、〜あるいはになるので、
const num = 10;
if(num === 10 || num > 13){
console.log(true);
}else{
console.log(false);
}
どちらか片方だけでも条件に当てはまった場合でもtrueを返します!
比較演算子はプログラムにおいては非常によく使うものだと思うので、しっかり復習していきたいと思います。