厳密等価演算子(ゲンスミツトウカエンザンシ)とは | 意味や読み方など丁寧でわかりやすい用語解説
厳密等価演算子(ゲンスミツトウカエンザンシ)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
厳密等価演算子 (ゲンミツトウカエンザンシ)
英語表記
strict equality operator (ストリクト・イコール・オペレーター)
用語解説
厳密等価演算子(strict equality operator)は、プログラミングにおいて、二つの値が「厳密に等しい」かどうかを判定するために使用される演算子である。JavaScriptやPHPなどの多くのプログラミング言語に存在する。
概要として、厳密等価演算子は、等価演算子(equality operator)と比較して、より厳格な比較を行う点が特徴である。等価演算子は、比較する前に必要に応じて型変換を行うのに対し、厳密等価演算子は型変換を行わない。そのため、型が異なる値同士を比較した場合、厳密等価演算子は必ず「等しくない」と判定する。
詳細について説明する。厳密等価演算子は、通常 === (イコール3つ)で表される。a === b という式は、「aとbが厳密に等しい」場合に true を返し、そうでない場合は false を返す。
厳密等価演算子による比較は、以下の手順で行われる。
-
型のチェック: まず、aとbの型が同じであるかどうかを確認する。型が異なる場合、厳密等価演算子は
falseを返す。例えば、数値の1と文字列の"1"は型が異なるため、1 === "1"はfalseとなる。 -
値のチェック: 型が同じである場合、aとbの値が等しいかどうかを確認する。値が等しい場合、厳密等価演算子は
trueを返す。値が異なる場合、falseを返す。例えば、数値の1と数値の1は型も値も同じであるため、1 === 1はtrueとなる。
具体的な例をいくつか示す。
5 === 5はtrueを返す。両方とも数値であり、値も等しい。"hello" === "hello"はtrueを返す。両方とも文字列であり、値も等しい。true === trueはtrueを返す。両方とも真偽値であり、値も等しい。null === nullはtrueを返す。両方ともnullである。undefined === undefinedはtrueを返す。両方ともundefinedである。1 === "1"はfalseを返す。型が異なるため。0 === falseはfalseを返す。型が異なるため。null === undefinedは言語によって異なる場合があるが、一般的にはfalseを返す。
厳密等価演算子の反対は、厳密不等価演算子(strict inequality operator)であり、!== (エクスクラメーションマークとイコール2つ)で表される。a !== b という式は、「aとbが厳密に等しくない」場合に true を返し、そうでない場合は false を返す。これは、!(a === b) と同じ意味になる。
厳密等価演算子は、予期せぬ型変換によるバグを防ぐために、等価演算子よりも推奨されることが多い。特に、JavaScriptのような動的型付け言語では、変数の型が実行時に変化する可能性があるため、厳密等価演算子を使用することで、より安全なコードを書くことができる。
システムエンジニアを目指す上で、厳密等価演算子と等価演算子の違いを理解し、適切な場面で使い分けることは重要である。特に、テストコードを書く際には、厳密等価演算子を使用することで、より正確なテストを行うことができる。