blogspot.com-GA4

星期三, 5月 21, 2008

javascript的==與=== (轉)

來源:JavaWorld

=== 是 javascript 1.3新增的 Operator(Strict Equals Operator),和 == 不同的地方在於,除了值相等之外,型別也要相等。

以下面程式為例 false == 0為 true,因為最後會轉成數字做比較,所以0==0。
而false === 0為 false,因為一個是Boolean,一個是Number,因此不相等。

<html>
<body>
<script type="text/javascript">
alert("false == 0: "+ (false == 0)); //true
alert("false === 0: "+ (false === 0)); //false
alert("undefined == null: "+ (undefined == null)); //true
alert("undefined === null: "+ (undefined === null)); //false

var A = 5;
var B = "5";
alert("Type of A: "+typeof A);
alert("Type of B: "+typeof B);
alert("A == B: "+ (A == B) ); //true
alert("A === B: "+ (A === B) ); //false

alert("A != B: "+ (A != B) ); //false
alert("A !==B: "+ (A !== B) ); //true
</script>
</body>
</html>

結論是需要"精確"比對時,可以改用 ===或 !==

沒有留言: