js中的"=="与"==="的区别

"==":

1,如果两表达式的类型不同,则试图将它们转换为字符串、数字或 Boolean 量。 
2,NaN 与包括其本身在内的任何值都不相等。 
3,负零等于正零。 
4,null 与 null 和 undefined 相等。 
5,相同的字符串、数值上相等的数字、相同的对象、相同的 Boolean 值或者(当类型不同时)能被强制转化为上述情况之一,均被认为是相等的。 
6,其他比较均被认为是不相等的。
<html>
	<body>
		<script>
			//1,5
			var a = 1;
			var b = '1';
			alert(a==b);//true
			
			b = false;
			alert(a==b);//false,false转为0,true转为1
			
			//2
			a = NaN;
			b = NaN;
			alert(a==b);//false
			
			//3
			a = 0;
			b = -0;
			alert(a==b);//true
			
			//4
			a = null;
			b = null;
			alert(a==b);//true
			
			b = undefined;
			alert(a==b);//true
		</script>
	</body>
</html>


"===":

除了不进行类型转换,并且类型必须相同以外,这些运算符与相等运算符的作用是一样的。 
<html>
	<body>
		<script>
			//1,5
			var a = 1;
			var b = '1';
			alert(a===b);//false
			
			b = false;
			alert(a===b);//false
			
			//2
			a = NaN;
			b = NaN;
			alert(a===b);//false
			
			//3
			a = 0;
			b = -0;
			alert(a===b);//true
			
			//4
			a = null;
			b = null;
			alert(a===b);//true
			
			b = undefined;
			alert(a===b);//false
		</script>
	</body>
</html>


posted @ 2013-07-25 11:44  心意合一  阅读(140)  评论(0编辑  收藏  举报