JavaScriptの等値演算子『==』と同値演算子『===』
『==』等値演算子は、型に関係なく値が等しいかを見る。
『===』同値演算子は、型も値も等しいかを見る。
オブジェクトの場合は、中身は同じでも参照値が違えば、false。
var aaa = {a : "x", b: "y"}; var bbb = {a : "x", b: "y"}; var ccc = aaa; alert('{a : "x", b: "y"}の比較(中身は同じで別々の参照値の比較)'); aaa == bbb ? alert("aaa == bbb は、ture") : alert("aaa == bbb は、false"); // false aaa === bbb ? alert("aaa === bbb は、ture") : alert("aaa === bbb は、false");// false alert('{a : "x", b: "y"}の比較(中身は同じで同一の参照値の比較)'); aaa == ccc ? alert("aaa == ccc は、ture") : alert("aaa == ccc は、false"); // ture aaa === ccc ? alert("aaa === ccc は、ture") : alert("aaa === ccc は、false");// ture aaa = "123"; bbb = "123"; alert('"123"の比較(文字列の比較)'); aaa == bbb ? alert("aaa == bbb は、ture") : alert("aaa == bbb は、false"); // ture aaa === bbb ? alert("aaa === bbb は、ture") : alert("aaa === bbb は、false");// ture aaa = "123"; bbb = 123; alert('"123"と123の比較(文字列と数値の比較)'); aaa == bbb ? alert("aaa == bbb は、ture") : alert("aaa == bbb は、false"); // ture aaa === bbb ? alert("aaa === bbb は、ture") : alert("aaa === bbb は、false");// false aaa = "123"; bbb = new String("123"); alert('文字列とオブジェクトの比較'); aaa == bbb ? alert("aaa == bbb は、ture") : alert("aaa == bbb は、false"); // ture aaa === bbb ? alert("aaa === bbb は、ture") : alert("aaa === bbb は、false");// false aaa = null; bbb = undefined; alert('nullとundefinedの比較'); aaa == bbb ? alert("aaa == bbb は、ture") : alert("aaa == bbb は、false"); // ture aaa === bbb ? alert("aaa === bbb は、ture") : alert("aaa === bbb は、false");// false