厳密等価演算子とは
厳密等価演算子(strict equality operator)とは、
値とデータ型の両方が完全に同じかどうかを比較する演算子です。
主に JavaScript などのプログラミング言語で使用され、次のように書きます。
===
この演算子は、比較する2つの値が
- 値が同じ
- データ型も同じ
という両方の条件を満たす場合のみ true を返します。
例
10 === 10
結果
true
10 === "10"
結果
false
2つ目の例では、
数値 10 と文字列 "10" は型が異なるため falseになります。
等価演算子(==)との違い
厳密等価演算子を理解するためには、等価演算子(==)との違いを知ることが重要です。
| 演算子 | 比較内容 |
|---|---|
| == | 値だけを比較(型変換が行われる) |
| === | 値と型の両方を比較 |
例で比較
10 == "10"
結果
true
これは 文字列 “10” が数値 10 に自動変換されるためです。
一方、
10 === "10"
結果
false
こちらは型も比較するため一致しません。
厳密等価演算子が重要な理由
プログラムでは、思わぬ型変換によってバグが発生することがあります。
そのため、多くの開発現場では === を使用することが推奨されています。
主な理由は次の通りです。
1 意図しない型変換を防げる
等価演算子(==)では、自動的に型変換が行われます。
例
0 == false
結果
true
しかし、厳密等価演算子では
0 === false
結果
false
このように予期しない判定ミスを防ぐことができます。
2 バグの発生を減らせる
型変換による比較は、コードの挙動を分かりにくくします。
厳密等価演算子を使えば、条件判定が明確になるためバグを減らすことができます。
3 JavaScriptでは推奨されている
多くのJavaScriptのコーディング規約では
「基本的に === を使う」
ことが推奨されています。
厳密等価演算子の使用例
実際のコード例を見てみましょう。
数値の比較
let a = 5;
let b = 5;console.log(a === b);
結果
true
型が異なる場合
let a = 5;
let b = "5";console.log(a === b);
結果
false
条件分岐での使用
let score = 80;if (score === 80) {
console.log("80点です");
}
結果
80点です
厳密等価演算子と厳密不等価演算子
厳密等価演算子と合わせて覚えておきたいのが、厳密不等価演算子です。
| 演算子 | 意味 |
|---|---|
| === | 値と型が等しい |
| !== | 値または型が異なる |
例
10 !== "10"
結果
true
厳密等価演算子を使う際の注意点
厳密等価演算子は便利ですが、いくつか注意点もあります。
オブジェクトは参照で比較される
オブジェクトの場合、内容ではなく参照(メモリアドレス)で比較されます。
{} === {}
結果
false
これは、別々のオブジェクトとして扱われるためです。
まとめ
厳密等価演算子とは、値とデータ型の両方が同じかどうかを判定する比較演算子(===)です。
ポイントをまとめると次の通りです。
- 値と型の両方を比較する
- JavaScriptでよく使用される
- 型変換が起きないため安全
- 多くの開発現場で推奨されている
初心者のうちは 「基本は === を使う」と覚えておくと、プログラムのバグを防ぎやすくなります。


