JavaScript中的“==”和“===”的区别详解

一、先区别名字,再看区别

“==”叫做:等值运算符            ,        “===”:叫做:等同运算符

等值运算符:==    (表示等值的意思,判断比较双方的值是否相等;

  1. 先判断类型,类型一致则直接比较。
  2. 类型不一致,则先使用Number()进行强转后再进行比较。

等同运算符:===    (表示等同的意思,判断比较双方是否完全相等,包括类型和值。

  1.  先判断类型,类型一致则再比较内容,内容一致则返回true,内容不一致则返回false。
  2.  类型不一致则直接false

二、代码段辨析,亲测无误

 注意:

                       null和undefined在做==判断时候返回true    

<script type="text/javascript">
			/*声明变量*/
			var a=1;
			var a1="1";
			var a2=true;
			var a3="true";
			var a4="a";
			var a5="a";
			alert(a==a1);//true
			alert(a==a2);//true
			alert(a==a3);//false
			alert(a1==a2);//true
			alert(a1==a3);//false
			alert(a2==a3);//false
			alert(a4==a5);//true
			
			alert(a===a1);//true
			alert(a===a2);//true
			alert(a===a3);//false
			alert(a1===a2);//true
			alert(a1===a3);//false
			alert(a2===a3);//false
			alert(a4===a5);//true
			
		</script>

三、“==”和“===”的详细区别:

===  比较的判断条件:

1、如果比较双方的类型不相同,则不相等;

2、如果都是数字,而且值相同,那么除非其中一个或两个都是NaN(NaN和NaN也是不相等的)时,比较双方是不相等的,否则,是相等的;

3、如果都是字符串,而且值相同,则相等;

4、如果都是布尔类型,而且都为true或false,则相等;

5、如果比较双方都是引用同一个对象、数组或函数,那么比较双方是相等的。否则,不相等,即使两个对象有完全相同的属性和方法,或者,数组内容完全相同;

6、如果都是null或undefined,则相等。

==   比较的判断条件:

如果比较双方类型相同,那么就比较他们的等同性,如果等同则相等,反之,不相等;

如果比较双方类型不相同,使用下面规则进行比较判断:

1、如果一个是数字,一个是字符串,则把字符串转换为数字,再进行比较;

2、如果一个是数字,一个是布尔值,将true转换为1,false转换为0,再进行比较;

3、如果一个是字符串,一个是布尔值,将他们都转换为数字,再进行比较;

3、如果一个是对象,一个是数字或字符串,将对象转换为原始类型的值(valueOf或toString方法),再进行比较;

4、如果一个是null,一个是undefined,那么他们相等;

5、其它类型组合比较不相等。

 

 

四、编码中的注意点

我在学习过程中发现 js中 switch 结构  匹配不同的条件 用的是“===”等同运算符     ,这点要特别注意!!

switch代码段:

<script type="text/javascript">
			/*声明变量:if判断*/
			var a=123;
			var b=45;
			if(a>10){
				alert(a+b);
			}
			
			/*声明变量:选择结构*/
			var a=1;
			switch (a){
				case "1":
					alert("第一项选择");
					break;
				case "2":
					alert("第二项选择");
				break;
				default:
					alert("没有对应的选项");
					break;
			}

其中  如果  var a=1时: 进入default :没有对应选项;

                   var = “1” 时 : 进入 case “1” :第一项选择;

猜你喜欢

转载自blog.csdn.net/djklsajdklsajdlk/article/details/105278931
今日推荐