「不等価演算子」と「厳密不等価演算子」の違い
スポンサーリンク
予備知識
| 用語 | 意味 |
|---|---|
| プログラミング | プログラムを作ること |
| プログラミング言語 | プログラムの元ネタ(ソースコード)を書くときに使う言葉 |
| 変数 | プログラミング言語における「値を入れておく箱」 |
| 変数の型 | 変数の種類 |
| 演算子 | 「どんな演算をしてくださいね」を表現する記号 |
| 等価演算子(==) | プログラミングで出てくる演算子のひとつで「右側の値と左側の値は同じですか~?」な比較を意味する演算子 |
| 厳密等価演算子(===) | プログラミングで出てくる演算子のひとつで「右側の値と左側の値は、変数の型(変数の種類)まで含めて同じですか~?」な比較を意味する演算子 |
それぞれの用語の意味
| 用語 | 意味 |
|---|---|
| 不等価演算子(!=) | プログラミングで出てくる演算子のひとつで「右側の値と左側の値は違いますか~?」な比較を意味する演算子 |
| 厳密不等価演算子(!==) | プログラミングで出てくる演算子のひとつで「変数の型まで含めて比較したときに、右側の値と左側の値は違うやつですか~?」な比較を意味する演算子 |
似ているところ
どちらも、値が違うか比較するときに使う演算子です。

違うところ
変数の型を考慮するか否かの違いです。
不等価演算子(!=)を使って比較した場合は
1.値が違う(例えば「10」と「20」を比較した場合)
であればOK(違う)扱いになります。
型が違う場合でも値が同じであれば「NG(同じ)」と判断されるのが一般的です。

厳密不等価演算子(!==)を使って比較した場合は
1.値が違う(例えば「10」と「20」を比較した場合)
2.型が違う(例えば「10」と「"10"」を比較した場合)
のどちらかであればOK(違う)扱いになります。
値が同じで型も同じ場合のみ「NG(同じ)」と判断されます。

個人的な使い分け
厳密不等価演算子(!==)があるプログラミング言語であれば、基本的には厳密不等価演算子(!==)を使うようにしています。
プログラミング言語にもよりますが不等価演算子(!=)で比較した場合は、数字の0、空文字、NULLなどが同じ値だと判断されてしまうからです。
備考
不等価演算子は「!=」を使うのが一般的ですが「<>」を使うプログラミング言語もあります。
厳密不等価演算子は「!==」を使うのが一般的です。
せっかくなので、実際のプログラミングに近い例も載せておきますね。
例示に使うプログラミング言語はJavaScriptです。
例えば、以下のような処理が あったとしましょう。
var a = 10;
var b = "10";
if(a != b){
alert("aとbは違う");
}
if(a !== b){
alert("aとbは型が違うか値が違う");
}
この処理を実行すると「aとbは型が違うか値が違う」のみ表示されます。
不等価演算子(!=)で比較したときは「同じ『10』だよね」と判断されるので「aとbは違う」は表示されません。






