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

!==

pointこの用語のポイント

point演算子だよ

point演算子の右側と左側が違うか型まで含めて比較するよ

point値が違うか型が違えば、OKと判断されるよ

スポンサーリンク

簡単に書くよ

!==とは

プログラミングで出てくる演算子のひとつ
であり

「変数の型(変数の種類)まで含めて比較したときに、右側の値と左側の値は違うやつですか~?」な比較を意味する演算子
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として

変数
変数の型
演算子
・演算子「===


について説明します。
特に、演算子「===」についてはガッツリ説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

変数は「プログラミング言語における『値を入れておく箱』」です。
処理の途中で値を入れたり、逆に取り出したりできます。

!==

変数の型は「この箱(変数)には、どんな種類の物を入れていいですよ」な決まりです。

!==2

例えば、そうですね。
手ごろな大きさのダンボール箱が あったとしましょう。

!==3

ピヨ太君がやってきて、その箱にマジックで大きく「食べ物用」と書きました。

!==4

「食べ物用」と書いたので、このダンボールに入れていいのは食べ物だけです。
食べ物以外を入れようとすると、ピヨ太君にメッチャ怒られます。

!==5

この話におけるダンボール箱が「変数」です。
マジックで書いた「食べ物用」が「変数の型」になります。

!==6

変数の型には、いろいろな種類があります。
数字を入れられる箱、文字を入れられる箱、文字列を入れられる箱、いろいろです。

演算子は「どんな演算をするか表す記号」です。
「+」「-」「*(×)」「/(÷)」をはじめ、なんか いろいろ あります。

!==7

演算子「===」は左側の値と右側の値が同じか型まで含めて比較するときに使う演算子です。

!==8

この演算子は「型まで含めて」というのがポイントです。
例えば

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


と聞かれたとします。
変数aの値も変数bの値も同じ「10」です。
普通に考えたら「変数aの値と変数bの値は同じです」と答えるでしょう。

!==9

それでは、今度はどうでしょう。

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


と聞かれました。
変数aの値と変数bの値は同じですかね。

!==10

変数aに入っている値も変数bに入っている値も、どちらも「10」です。
ですから「変数aの値と変数bの値は同じ」と考えることもできます。

!==11

ですが、変数aは数字です。
変数bは文字です。
型にも注目すると、変数aと変数bは違いますよね。

!==12

この話における後者の考え方を導入した比較演算子が「===」です。
意味が同じでも「10」と「"10"」では「数字と文字だから違うね!」と判定します。

!==13

もう少し実際のプログラミングに近い例も見てみましょう。
使うプログラミング言語は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つ:厳密等価演算子)はセットで覚えてあげてください。

「!==」が存在するプログラミング言語において「==」は単純な値の比較です。
変数の型(変数の種類)は気にしません。
数字と文字の比較であろうと、値が同じであれば「同じだよ~」と判定します。

それに対して「===」は変数の型(変数の種類)を気にします。
数字と文字の比較のように、変数の種類が違えば、例え値が同じであろうと「違うよ~」と判定します。

以上を踏まえて

左側の値と右側の値が違うか「型まで含めて」比較するときに使う演算子

が「!==」です。

!==14

演算子「!==」を使って比較した場合は

1.値が違う(例えば「10」と「20」を比較した場合)
2.型が違う(例えば「10」と「"10"」を比較した場合)


のどちらかであればOK扱いになります。

「!==」は「===」の反対です。
そのため「===」の説明を長々とやりました。

気が向いたら、セットで覚えてあげてください。

演算子「===」:値が同じで型も同じだったらOKの扱い
演算子「!==」:値が違うか型が違えばOKの扱い


です。


image piyo2

一言でまとめるよ

まぁ「!==」って演算子が出てきたら「右の値と左の値が違うか型(変数の種類)まで含めて比べるときに使う演算子なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像042
書籍画像005

おまけ

■違いの分かるピヨピヨ





書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
実務で役立つ バックアップの教科書 基本の考え方からツール活用・差分管理・世代管理・データ保全・リストア・リカバリー・可用性の確保まで
インフルエンサー六法 活動開始から情報発信、収益化までに潜むトラブル対策50