JavaScriptでは、比較演算子として==
と===
があります。これらは、2つの値を比較して、等しいかどうかを判定するために使用されます。しかし、これらの演算子には微妙な違いがあります。以下のサンプルコードを見てみましょう。
console.log(5 == "5"); // true
console.log(5 === "5"); // false
==
は、値の型を変換してから比較を行います。つまり、上の例では、文字列"5"
を数値5
に変換してから比較しているため、true
となります。一方、===
は、値の型も含めて厳密に比較します。つまり、上の例では、数値と文字列という型が異なるため、false
となります。
==
を使用する場合、値の型が異なっている場合に自動的に変換が行われるため、思わぬバグを招く可能性があります。そのため、===
を使用することを推奨します。
console.log(true == 1); // true
console.log(true === 1); // false
また、null
とundefined
は、==
を使うと等しいと評価されます。
console.log(null == undefined); // true
console.log(null === undefined); // false
以上のように、==
と===
には微妙な違いがあります。一般的には、型を厳密に比較するために、===
を使用することが推奨されます。