厳密等価演算子(ゲンスミツトウカエンザンシ)とは | 意味や読み方など丁寧でわかりやすい用語解説

厳密等価演算子(ゲンスミツトウカエンザンシ)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

厳密等価演算子 (ゲンミツトウカエンザンシ)

英語表記

strict equality operator (ストリクト・イコール・オペレーター)

用語解説

厳密等価演算子(strict equality operator)は、プログラミングにおいて、二つの値が「厳密に等しい」かどうかを判定するために使用される演算子である。JavaScriptやPHPなどの多くのプログラミング言語に存在する。

概要として、厳密等価演算子は、等価演算子(equality operator)と比較して、より厳格な比較を行う点が特徴である。等価演算子は、比較する前に必要に応じて型変換を行うのに対し、厳密等価演算子は型変換を行わない。そのため、型が異なる値同士を比較した場合、厳密等価演算子は必ず「等しくない」と判定する。

詳細について説明する。厳密等価演算子は、通常 === (イコール3つ)で表される。a === b という式は、「aとbが厳密に等しい」場合に true を返し、そうでない場合は false を返す。

厳密等価演算子による比較は、以下の手順で行われる。

  1. 型のチェック: まず、aとbの型が同じであるかどうかを確認する。型が異なる場合、厳密等価演算子は false を返す。例えば、数値の 1 と文字列の "1" は型が異なるため、1 === "1"false となる。

  2. 値のチェック: 型が同じである場合、aとbの値が等しいかどうかを確認する。値が等しい場合、厳密等価演算子は true を返す。値が異なる場合、false を返す。例えば、数値の 1 と数値の 1 は型も値も同じであるため、1 === 1true となる。

具体的な例をいくつか示す。

  • 5 === 5true を返す。両方とも数値であり、値も等しい。
  • "hello" === "hello"true を返す。両方とも文字列であり、値も等しい。
  • true === truetrue を返す。両方とも真偽値であり、値も等しい。
  • null === nulltrue を返す。両方とも null である。
  • undefined === undefinedtrue を返す。両方とも undefined である。
  • 1 === "1"false を返す。型が異なるため。
  • 0 === falsefalse を返す。型が異なるため。
  • null === undefined は言語によって異なる場合があるが、一般的には false を返す。

厳密等価演算子の反対は、厳密不等価演算子(strict inequality operator)であり、!== (エクスクラメーションマークとイコール2つ)で表される。a !== b という式は、「aとbが厳密に等しくない」場合に true を返し、そうでない場合は false を返す。これは、!(a === b) と同じ意味になる。

厳密等価演算子は、予期せぬ型変換によるバグを防ぐために、等価演算子よりも推奨されることが多い。特に、JavaScriptのような動的型付け言語では、変数の型が実行時に変化する可能性があるため、厳密等価演算子を使用することで、より安全なコードを書くことができる。

システムエンジニアを目指す上で、厳密等価演算子と等価演算子の違いを理解し、適切な場面で使い分けることは重要である。特に、テストコードを書く際には、厳密等価演算子を使用することで、より正確なテストを行うことができる。