==と===の違い

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

また、nullundefinedは、==を使うと等しいと評価されます。

console.log(null == undefined);  // true
console.log(null === undefined); // false

以上のように、=====には微妙な違いがあります。一般的には、型を厳密に比較するために、===を使用することが推奨されます。