JavaScript: ==(等値演算子)と===(同値演算子)の違い
このページでは、JavaScriptの条件式で使用する ==(等値演算子)と===(同値演算子)の違いについて 説明します。
結論から言うと、型を含めて厳密に比較したい場合は===(同値演算子)を使います。
==(等値演算子)
==(等値演算子)は左右の値が同じ場合にtrueを返します。 型変換はJavaScript側で自動的に行ってくれます。
===(同値演算子)
===(同値演算子)の方が厳密な比較をします。 値だけでなく、型も同じ場合にtrueを返します。
!=(不等演算子)と!==(非同値演算子)
!=(不等演算子)は==(等値演算子)の逆で、 !==(非同値演算子)===(同値演算子)の逆となります。
3種類の演算子
JavaScriptではイコールを使う演算子が3種類あります。
ありがちなケアレスミスとして、 条件式で=(代入演算子)を使ってしまうとバグとなりますので注意してください。
// ケアレスミスの例
if(a=b)
処理
- =(代入演算子)
- ==(等値演算子)
- ===(同値演算子)
それぞれ読み方を変えれば区別しやすくなります。
- =(代入する)
- ==(等しい)
- ===(同値である)