等値演算子(==)は両側のデータを比較して一致する場合がないか調べる。 その際には、データ型の変換も自動的に行われる。このためstr1とstr2が 同じと判断されてtrueが返る。一方、同値演算子(===)の場合は、データ型 の変換は行われない。このため、str1とstr2はデータ型が異なるため (オブジェクトが保持するデータは同じでも)異なると判断されてfalseが返る。
【ソース】
<script language="javascript">
var str1 = "This is javascript.";
var str2 = new String("This is javascript.");
</script>
<button onclick="alert(str1==str2)">TEST1</button>
<button onclick="alert(str1===str2)">TEST2</button>