当前位置: 首页 > Web前端 > JavaScript

JavaScript中==和===的区别

时间:2023-03-27 00:08:42 JavaScript

JavaScript中==和===的区别在js中,我们经常判断两个值是否相等,我们使用相等运算符和严格相等操作员。一般情况下,只要能确定变量的数据类型,我们就用===来判断。下面解释一下这两个元素符号的使用或者说判断规则。1.==equaloperator相等运算符在进行类型判断的时候可能会进行一些类型转换1.如果一个操作数是布尔值,比较的时候会转换成一个值1==true//true2.如果一个操作数是一个字符串,另一个是一个值,比较时字符串会变成一个值。1=='1'//true3。如果一个操作数是对象,另一个不是,调用对象的valueOf和toString方法转换对象[]==""//true[]==false//leta=[1,2,3]a.toString()//1,2,3letb={"test":2}b.toString()//'[objectObject]'[]=={}//false4,特别注意nullundefined等,和其他任何组合都不等于null==undefined//truefalse==NaN//falsenull==0//falseundefined==0//false5.额外注意:即使三个操作数中有两个是相等,并不意味着所有三个都相等0=="0"//true0==[]//true"0"==[]//false6,有趣的东西0.1=='0.1'//true(0.1+0.2)==0.3//false0.0000000001=='0.0000000001'//trueparseInt(0.000000008)==8//true这里涉及到精度和基数转换的问题。很高兴知道它。2.===严格相等运算符严格相等运算符是先进行类型比较。如果类型不同,则不会直接相等。ES6数据类型包括Number、String、Boolean、Object、Symbol、null和undefined。Copy1===true//false1==="1"//false[]===""//falsenull===undefined//false//值得注意的是,如果两个操作数都是对象,则比较参考地址。如果引用地址相同则相等;否则不平等。leta={}letb={}a==b//false===b//false