===
演算子だよ
演算子の右側と左側が同じか型まで含めて比較するよ
値が同じでも型が違ったら「違う」と判断されるよ
簡単に書くよ
===とは
プログラミングで出てくる演算子のひとつ
であり
「右側の値と左側の値は、変数の型
(変数の種類)まで含めて同じですか~?」な比較を意味する演算子
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・変数
・変数の型
・演算子
について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
変数は「プログラミング言語における『値を入れておく箱』」です。
変数の型は「この箱(変数)には、どんな種類の物を入れていいですよ」な決まりです。
例えば、そうですね。
手ごろな大きさのダンボール箱が あったとしましょう。
ピヨ太君がやってきて、その箱にマジックで大きく「食べ物用」と書きました。
「食べ物用」と書いたので、このダンボールに入れていいのは食べ物だけです。
食べ物以外を入れようとすると、ピヨ太君にメッチャ怒られます。
この話におけるダンボール箱が「変数」です。
マジックで書いた「食べ物用」が「変数の型」になります。
変数の型には、いろいろな種類があります。
数字を入れられる箱、文字を入れられる箱、文字列を入れられる箱、いろいろです。
演算子は「どんな演算をするか表す記号」です。
「+」「-」「*(×)」「/(÷)」をはじめ、なんか いろいろ あります。
以上を踏まえて
左側の値と右側の値が同じか「型まで含めて」比較するときに使う演算子
が「===」です。
この演算子は「型まで含めて」というのがポイントです。
例えば
1.変数aの値は10です
2.変数bの値は10です
3.変数aの値と変数bの値は同じですか?
と聞かれたとします。
変数aの値も変数bの値も同じ「10」です。
普通に考えたら「変数aの値と変数bの値は同じです」と答えるでしょう。
それでは、今度はどうでしょう。
1.変数aの値は数字の10です
2.変数bの値は文字の"10"です
3.変数aの値と変数bの値は同じですか?
と聞かれました。
変数aの値と変数bの値は同じですかね。
変数aに入っている値も変数bに入っている値も、どちらも「10」です。
ですから「変数aの値と変数bの値は同じ」と考えることもできます。
ですが、変数aは数字です。
変数bは文字です。
型にも注目すると、変数aと変数bは違いますよね。
この話における後者の考え方を導入した比較演算子が「===」です。
意味が同じでも「10」と「"10"」では「数字と文字だから違うね!」と判定します。
もう少し実際のプログラミングに近い例も見てみましょう。
使うプログラミング言語はJavaScriptです。
例えば、そうですね。
以下のような処理が あったとしましょう。
var a = 10;
var b = "10";
if(a == b){
alert("aとbは同じ");
}
if(a === b){
alert("aとbは型まで含めて同じ");
}
まず
var a = 10;
で、変数aに数字の「10」を入れています。
次に
var b = "10";
で、変数bに文字の「10」を入れています。
次に
if(a == b){
alert("aとbは同じ");
}
で「変数aと変数bが同じ値か」を判定しています。
「==」(イコール2つ)は「右側の値と左側の値は同じですか~?」な比較を意味する演算子です。
「等価演算子」と呼ばれます。
最後に
if(a === b){
alert("aとbは型まで含めて同じ");
}
で「変数aと変数bが型まで含めて同じ値か」を判定しています。
「===」(イコール3つ)が本ページで説明している演算子です。
ついでなので書いておくと「===」(イコール3つ)の名前は「厳密等価演算子」です。
ここまでの説明書きをサンプルコードの中に書き込むと、以下のようになります。
//変数aに数字の10を入れる
var a = 10;
//変数bに文字の10を入れる
var b = "10";
//変数aと変数bが同じ値か判定
if(a == b){
alert("aとbは同じ");
}
//変数aと変数bが型まで含めて同じ値か判定
if(a === b){
alert("aとbは型まで含めて同じ");
}
このサンプルを実行すると「aとbは同じ」は表示されますが「aとbは型まで含めて同じ」は表示されません。
型が数字と文字で違うからです。
「==」(イコール2つ:等価演算子)と「===」(イコール3つ:厳密等価演算子)はセットで覚えてあげてください。
「===」が存在するプログラミング言語において「==」は単純な値の比較です。
変数の型(変数の種類)は気にしません。
数字と文字の比較であろうと、値が同じであれば「同じだよ~」と判定します。
それに対して「===」は変数の型(変数の種類)を気にします。
数字と文字の比較のように、変数の種類が違えば、例え値が同じであろうと「違うよ~」と判定します。
一言でまとめるよ
まぁ「===」って演算子が出てきたら「右の値と左の値が同じか型
(変数の種類)まで含めて比べるときに使う演算子なんだな~」と お考えください。






