みなさんこんにちは、現役エンジニアのサメハックです
アパレル企業でトップ販売員を経て
未経験からWebエンジニアに転職し、
現在正社員として5年働いています!
今回はJavaScriptの真偽値と比較演算子について学んでいきましょう!
駆け出しエンジニアや未経験の方、
また新入社員を指導する先輩社員にとっても
わかりやすいように解説していきます!
- 真偽値の判定方法がわかる!
- 比較演算子の使い方がわかる!
- 等価演算子と厳密等価演算子の違いがわかる!
真偽値
真偽値とはJavaScriptのデータ型のひとつで
真偽値型やBoolean型(ブーリアン)と呼ばれているもので、
指定した条件が正しい(真)か間違っている(偽)かを判断し、
比較結果として、true(真)かfalse(偽)で表します。
真・・・true
偽・・・false
ざっくり纏めるとこんな感じです。
後半に実際コードを記述して解説していきます!
比較演算子
比較演算子とは、等号不等号のことで
データAとデータBを比べる際に使われます。
数学で習ったものとほとんど同じです
- A > B ・・・AはBより大きい
- A < B ・・・AはBより小さい
- A >= B ・・・AはBと等しいか、Bより大きい(以上)
- A <= B ・・・AはBと等しいか、Bより小さい(以下)
- A == B ・・・AとBは等しい
- A != B ・・・AとBは等しくない
- A === B ・・・AとBは等しい
- A !== B ・・・AとBは等しくない
★重要なポイントですが、プログラミングにおいて”!”は否定(not)を表します。
JavaScript以外の殆どの言語でも同じ仕様です。
ちなみに大人でも間違って使っている人を定期的に見かけるのですが
以上・以下のように「以」がつくと、比較対象の値も含みます!
たとえば「3日”以内”に連絡します」と言われた場合、
3日目に連絡しても問題ないよ!
2つのデータを比較する際に使われるよ!
厳密等価演算子と等価演算子の違い
厳密等価演算子
厳密等価演算子とは、
イコールを3つ書いてデータを比較することです。
// 厳密等価演算子
A === B ・・・AとBは等しい
A !== B ・・・AとBは等しくない
これはデータの型、値いずれも比較対象です。
つまり、データ比較のフェーズが2段階に別れており、
①データAとデータBの型は等しいですか?
②データAとデータBの値等しいですか?
という2つの質問に対してどちらもYESだった場合にのみ
trueを返します。
console.log("サメハック" === "サメハック");
// true
console.log(123 === 123);
// true
console.log(123 === "123");
// false ※ここがポイント
等価演算子
等価演算子とは、
イコールを2つ書いてデータを比較することです。
// 厳密等価演算子
A == B ・・・AとBは等しい
A != B ・・・AとBは等しくない
これは、データの型は無視します!
つまり、数字の”1″と数値の1を比較してもtrueとなります。
console.log("サメハック" == "サメハック");
// true
console.log(123 == 123);
// true
console.log(123 == "123");
// true ※ここがポイント
※数字と数値の違いを復習したい方はこちらの記事を読んでください
ちなみにこういう部分が、中級者やベテランさんから
JavaScriptが嫌われる所以です。笑
これだけならまだしも、JavaScriptには
なぜその比較結果がtrueになるの??????
と理解出来ないような地獄の仕様が結構あります。
(近々そのあたりの応用編も解説してみますね)
なぜなら異なるデータ型を比べる、なんていう
とんでもないことは起こり得ないからだよ!
まとめ
- 真偽値とは、データの比較結果をtrue/falseで表すこと
- 比較演算子とは、等号不等号のことで2つのデータを比較する際に使います
- 厳密等価演算子(===)と等価演算子(==)の違いはデータ型が比較対象かどうか
- 異なるデータ型を比較することは通常ありえないから、現場のソースに合わせて記述しよう!
真偽値と比較演算子が理解できてえらい!
これで条件分岐ができるね!
満足いただけたら、1クリックなのでSNSフォローしてもらえると嬉しいです🦈
サメハック。