[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

プログラミングにおける「==」と「===」の違い

スポンサーリンク

予備知識


用語意味
プログラミングプログラムを作ること
プログラミング言語プログラムの元ネタ(ソースコード)を書くときに使う言葉
変数プログラミング言語における「値を入れておく箱」
変数の型変数の種類
演算子「どんな演算をしてくださいね」を表現する記号

それぞれの用語の意味


用語意味
==(等価演算子プログラミングで出てくる演算子の一つで「右側の値と左側の値は同じですか~?」な比較を意味する演算子
===(厳密等価演算子プログラミングで出てくる演算子の一つで「右側の値と左側の値は、変数の型(変数の種類)まで含めて同じですか~?」な比較を意味する演算子

似ているところ


どちらも値の比較を意味する演算子です。


違うところ


変数の型を考慮するか否かの違いです。

例えば

1.変数aの値は数字の10です
2.変数bの値は文字の"10"です
3.変数aの値と変数bの値は同じですか?


と訊かれたとします。

「==」(イコールが2つ:等価演算子)で比較した場合は「はい!同じです!」となります。
数字であろうと文字であろうと同じ「10」である、との判断です。

それに対して「===」(イコールが3つ:厳密等価演算子)で比較した場合は「いいえ、違います」となります。
値を比較する以前に、数字と文字は違う、との判断です。


個人的な使い分け


「===」があるプログラミング言語であれば、基本的には「===」を使うようにしています。
プログラミング言語にもよりますが「==」で比較した場合は、数字の0、空文字NULLなどが同じ値だと判断されてしまうからです。


備考


もう少し、実際のプログラミングに近い例も載せておきますね。
例示に使うプログラミング言語はJavaScriptです。

例えば、以下のようなコードがあったとしましょう。

var a = 10;
var b = "10";

if(a == b){
    alert("aとbは同じ");
}

if(a === b){
    alert("aとbは型まで含めて同じ");
}


このコードを実行すると「aとbは同じ」のみ表示されます。
「10」(数字)と「"10"」(文字)は型が違うからです。


スポンサーリンク