JavaScript/===
表示
JavaScriptの 厳密等価演算子 (===
) は、2つの値が「型と値の両方」で等しいかどうかを比較するための演算子です。以下に、その特徴と使い方を詳しく説明します。
- 型と値の両方を比較:
- 暗黙的な型変換を行わない:
使用例
[編集]以下は、厳密等価演算子 (===
) の使用例です。
例1: 同じ型と値
[編集]console.log(5 === 5); // true console.log("hello" === "hello"); // true console.log(true === true); // true console.log(null === null); // true console.log(undefined === undefined); // true
例2: 異なる型
[編集]console.log("5" === 5); // false (型が異なる) console.log(true === 1); // false (型が異なる) console.log(null === undefined); // false (型が異なる)
例3: オブジェクトの比較
[編集]const obj1 = { a: 1 }; const obj2 = { a: 1 }; const obj3 = obj1; console.log(obj1 === obj2); // false (異なるオブジェクト参照) console.log(obj1 === obj3); // true (同じオブジェクト参照)
- 緩い等価演算子 (
==
):- 型が異なる場合、暗黙的な型変換を行ってから比較します。
- 例:
console.log("5" == 5); // true (文字列 "5" が数値 5 に変換される) console.log(true == 1); // true (真偽値 true が数値 1 に変換される)
console.log("5" === 5); // false (型が異なる) console.log(true === 1); // false (型が異なる)
厳密等価演算子を使うべき場面
[編集]- 型の一致を確認したい場合:
- 例えば、数値と文字列を区別したい場合に使用します。
- 例:
const input = "5"; if (input === 5) { console.log("数値です"); } else { console.log("数値ではありません"); // こちらが実行される }
- オブジェクトの参照を比較したい場合:
- 同じオブジェクトを指しているかどうかを確認する場合に使用します。
- 例:
const obj1 = { a: 1 }; const obj2 = obj1; console.log(obj1 === obj2); // true
console.log(null === undefined); // false
注意点
[編集]NaN
の比較:- オブジェクトの比較:
- オブジェクトは参照で比較されるため、同じ内容でも異なるオブジェクトは
false
になります。 - 例:
console.log({ a: 1 } === { a: 1 }); // false
- オブジェクトは参照で比較されるため、同じ内容でも異なるオブジェクトは
まとめ
[編集]厳密等価演算子は、JavaScriptで安全で予測可能なコードを書くために非常に重要です。特に、型の一致を確認する必要がある場面で積極的に使用しましょう。