えっ!?イコールが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」

でなります。

まとめ

いかがでしたでしょうか?

①==は型を比較せず、評価します。

②===は==に対し、型の一致まで比較した上で評価します。

①、②の演算子の違いを覚えて、

「理解の助け」

になればうれしいです。

<参考文献>


いいなと思ったら応援しよう!