等値演算子(==)と同値演算子(===)

等値演算子(==)は両側のデータを比較して一致する場合がないか調べる。
その際には、データ型の変換も自動的に行われる。このため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>