JavaScript中两个等号(“==”)和三个等号(“===”)的区别
在JavaScript中“==”和“===”有什么区别呢,下面的这几个例子可以让你清楚地看到它们的区别:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>== 和 ===区别</title>
</head>
<body>
<script lang="javascript">
function println(str){
document.writeln(str + "<br/>");
}
function test1(){
var b = 0;
if(b == false){
println('0==false 成立');
}else{
println('0 == false 不成立');
}
}
function test1b(){
var b = 0;
if(b === false){
println('0===false 成立');
}else{
println('0===false 不成立');
}
}
function test2(){
var b = 2;
if(b == '2'){
println('2==\'2\'成立');
}else{
println('2==\'2\'不成立');
}
}
function test2b(){
var b = 2;
if(b === '2'){
println('2===\'2\'成立');
}else{
println('2===\'2\'不成立');
}
}
test1();
test1b();
test2();
test2b();
</script>
</body>
</html>
输出:
0==false 成立
0===false 不成立
2=='2'成立
2==='2'不成立
总结:
JavaScript在进行比较时,“==”比较会进行类型的转换,如转换后 0会和false相等,1会和true相等,字符串型数字会和数字型数字相等 等等。
这样的话,在某些需要精确匹配的场合是不合要求的,这时采用“===”比较符则可以进行严格的比较,不仅转换后的值要相等,类型也要相同。
相对应“==”,“===”,不等于的比较则对应为“!=”,“!==”。