🎉

JavaScript '=='と'==='の違い

2023/12/07に公開

結論

中身だけを比較するか、型も比較するかが違う

違い

==は等価演算子といい、両者の中身のみを比較し、結果をboolで返す。

1 == 1            // true
'yes' == 'yes'    // true
'1' == 1          // true
'' == false       // true
1 == true         // true
null == undefined // true

===は厳密等価演算子といい、中身と型の両方を比較し、結果をboolで返す。

1 === 1            // true
'yes' === 'yes'    // true
'1' === 1          // false
'' == false        // false
1 === true         // false
null === undefined // false

使い分け

基本的には値と型を比較した方が安全。
型が不明確な時や存在チェックの場合は == を使う方がシンプルに書ける。

if (value == null) {
    // if (value === null || value === undefined) と同じ
}

参考

Discussion