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