JavaScript勉強会

JavaScriptの学習日記

【JS学習マラソン】第11回 1.2.8 比較

JavaScript学習マラソンの第11回は、

「現代の JavaScript チュートリアル」パート1の2.8「比較」です。

 

比較 https://ja.javascript.info/comparison

を読んでみます。

 

比較とは?

  • aとbが同じか、違うか?
  • 違う場合は、大きいか、小さいか?

などということを比べる作業ですね。

 

f:id:jsstudy:20190203131448p:plain

 

JavaScriptの比較演算子

等価演算子(同じか、違うか)
  • == 等価
  • != 不等価
  • === 厳密等価(一致)
  • !== 厳密不等価(不一致)
関係演算子(大きいか、小さいか)

という比較用の演算子(記号)が用意されてます。

 

developer.mozilla.org

 

比較は条件分岐(ifやswitch)で使用

比較は、ifやswitchなど、条件分岐の処理で使われますね。

=条件式を書くところで出番がある。

 

比較で注意するところは、単純な比較(==)と厳密な比較(===)の使い分けでしょうか。

 

チュートリアルでは、

  • 「0」(数値)
  • 「false」(真偽値)

を比較する例が紹介されていました。

 

  • 0 == false → true
  • 0 === false → false

 

0とfalseが、同じか違うかを比較するとき、

  • 単純な比較である「==」を使うと、0とfalseは同じと判断されます。
  • 厳密な比較である「===」を使うと、0とfalseは別物と判断されます。

「===」を使うと、データの型の違いまでチェックするので、数値と真偽値では別物と判断されるんですね。

 

普通は、単純な比較で十分だけど、型まで判定して比較したい場合は、厳密な比較を使わないといけません。

TPOに応じて、比較を使い分けましょう。

 

まとめ

(教材のサマリーから引用)

 

  • 比較演算子は論理値を返します。
  • 文字列は "辞書” 順で、1文字ずつ比較されます。
  • 異なった型の値が比較される場合、それらは数値に変換されます(厳密な等価チェックを除く)
  • 値 null と undefined はそれぞれ等価 == であり、それ以外の値とは等価ではありません。
  • > または < のような比較を、null/undefined になる可能性のある変数に対して使う場合は注意してください。null/undefined を別々にチェックするのが良いアイデアです。

 

 

 

スラスラ読める JavaScript ふりがなプログラミング (ふりがなプログラミングシリーズ)

スラスラ読める JavaScript ふりがなプログラミング (ふりがなプログラミングシリーズ)