JavaScript: ==(等値演算子)と===(同値演算子)の違い

このページでは、JavaScriptの条件式で使用する ==(等値演算子)と===(同値演算子)の違いについて 説明します。

結論から言うと、型を含めて厳密に比較したい場合は===(同値演算子)を使います。

==(等値演算子)

==(等値演算子)は左右の値が同じ場合にtrueを返します。 型変換はJavaScript側で自動的に行ってくれます。

===(同値演算子)

===(同値演算子)の方が厳密な比較をします。 値だけでなく、型も同じ場合にtrueを返します。

!=(不等演算子)と!==(非同値演算子)

!=(不等演算子)は==(等値演算子)の逆で、 !==(非同値演算子)===(同値演算子)の逆となります。

3種類の演算子

JavaScriptではイコールを使う演算子が3種類あります。

ありがちなケアレスミスとして、 条件式で=(代入演算子)を使ってしまうとバグとなりますので注意してください。

// ケアレスミスの例
if(a=b)
    処理
  • =(代入演算子)
  • ==(等値演算子)
  • ===(同値演算子)

それぞれ読み方を変えれば区別しやすくなります。

  • =(代入する)
  • ==(等しい)
  • ===(同値である)
JavaScript入門