えっ!?イコールが3つも!?Javascriptの演算子
先ほどの記事にてプログラミング学習における
「6つの共通点」
をお話しました。
なかでも演算子は
どの「プログラミング言語」でも使い回せる
のですが、
残念なことに世の中のプログラミング言語というのは
「独特な演算子」
があります。それに関しては、
覚えなくてはいけません。
ProgateでJavascriptを学び終えた中で、個人的に驚いた
「Javascript」の独特の演算子(===)
について紹介します。
何に驚いたかというと、
イコールがなんと3つもあるのです…。
===(イコールが3つ!?)
Javascriptを学んだ人以外は驚かれるでしょう。
三角形の合同「≡」かよ!?
って思われたのではないかと思います。
じゃぁ、イコールが2つ「=」の違いは!?
その違いはまず、
「型について説明」
しないといけません。
確かに、Javascriptでは
let i=0
let str='文字'
でも同じ
「let」
で宣言ができてしまうため、
「型」にまで意識がいかないでしょう。
ですが、Javascriptでは
「文字列と数字」は別の型
の扱いとなります。
※その他いろいろな型がありますが、割愛します。
==と===の最大の違いは型を比較するかどうか
①==の場合
console.log('2' == 2);
だと、全部数値になおしてから比較します。
ですので答えは
「True」
となります。
Javascriptでは
「勝手に適切な型に直して、評価してくれる」
ので便利なのですが、
「型の一致」
にまで意識がいっていないと、
なぜ「True」なんだろう…?
と思ってしまうでしょう。
その反面…
②===の場合
「型の一致」まで見てくれます。
例をあげると、
console.log('2' === 2);
だと
「文字列と数値の型が一致いるかどうか」のチェックも
してくれるので、
ここでようやく
「False」
でなります。
まとめ
いかがでしたでしょうか?
①==は型を比較せず、評価します。
②===は==に対し、型の一致まで比較した上で評価します。
①、②の演算子の違いを覚えて、
「理解の助け」
になればうれしいです。