JavaScript/===

JavaScriptの 厳密等価演算子 (===) は、2つの値が「型と値の両方」で等しいかどうかを比較するための演算子です。以下に、その特徴と使い方を詳しく説明します。

厳密等価演算子 (===) の特徴

  • 型と値の両方を比較:
    • 2つの値が同じ型であり、かつ同じ値である場合に true を返します。
    • 型が異なる場合や、値が異なる場合は false を返します。
  • 暗黙的な型変換を行わない:
    • 緩い等価演算子 (==) とは異なり、暗黙的な型変換を行いません。
    • 例えば、"5" == 5true ですが、"5" === 5false です。

使用例

以下は、厳密等価演算子 (===) の使用例です。

例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 に変換される)
  • 厳密等価演算子 (===):
    • 型が異なる場合、暗黙的な型変換を行わずに false を返します。
    • 例:
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
  • nullundefined を区別したい場合:
    • nullundefined は異なる型として扱われるため、厳密等価演算子で区別できます。
    • 例:
console.log(null === undefined); // false

注意点

  • NaN の比較:
    • NaN はどの値とも等しくないため、NaN === NaNfalse になります。
    • NaN を比較する場合は、Number.isNaN() を使用します。
    • 例:
      console.log(NaN === NaN); // false
      console.log(Number.isNaN(NaN)); // true
      
  • オブジェクトの比較:
    • オブジェクトは参照で比較されるため、同じ内容でも異なるオブジェクトは false になります。
    • 例:
      console.log({ a: 1 } === { a: 1 }); // false
      

まとめ

  • 厳密等価演算子 (===) は、型と値の両方を比較します。
  • 暗黙的な型変換を行わないため、より厳密な比較が可能です。
  • 緩い等価演算子 (==) とは異なり、型の不一致を明確に区別できます。

厳密等価演算子は、JavaScriptで安全で予測可能なコードを書くために非常に重要です。特に、型の一致を確認する必要がある場面で積極的に使用しましょう。

カテゴリ:Book:JavaScript#===%20 カテゴリ:JavaScript
カテゴリ:Book:JavaScript カテゴリ:JavaScript カテゴリ:Pages using the JsonConfig extension