在使用js的时候,我们会碰到:两个等号(==)和三个等号(===),那它们两个有什么区别呢?今天大勇就带小伙伴们一起来总结下。
1. "=="表示:“等同”的意思,如果两边值的类型不同的时候,会先进行类型转换,再做两边的数值比较。
2. "==="表示:“全等”的意思,"==="使用三个等号时,不需要做类型转换,不仅判断数值是否相等,还要判断两边值的类型是否一致。
下面我们直接通过写代码总结两者的判断规则差异:
===(全等)的判断规则:
(1)如果类型不同,就一定不相等
"text/javascript">
vara ="hello";
varb = 100;
alert(a === b);
(2)如果两个都是数值,并且是同一个值,那么相等;
"text/javascript">
vara =100;
varb = 100;
alert(a === b);
(3)如果两个都是字符串,每个位置的字符都一样,那么相等,否则不相等。
"text/javascript">
vara =“hello”;
varb =“hello”;
alert(a === b);
(4)如果两个值都是true,或是false,那么相等
"text/javascript">
vara =false;
varb =false;
alert(a === b);
(5)如果两个值都引用同一个对象或是函数,那么相等,否则不相等
"text/javascript">
vardate =newDate();
vara = date;
varb = date;
alert(a === b);
(6)如果两个值都是null,或是undefined,那么相等
"text/javascript">
vara =undefined;
varb =undefined;
alert(a === b);
==(等于)的判断规则:
(1)如果两个值类型相同,再进行三个等号(===)的比较
"text/javascript">
vara = 100;
varb = 100;
alert(a == b);
"text/javascript">
vara = 100;
varb = 200;
alert(a == b);
(2)如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换在比较:
a、如果一个是null,一个是undefined,那么相等
"text/javascript">
vara =null;
varb =undefined;
alert(a == b);
b、如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较
"text/javascript">
vara ="123";
varb = 123;
alert(a == b);
"text/javascript">
vara ="123";
varb = 456;
alert(a == b);
小伙伴们一起动手试试吧~
本文作者 | 大勇
特别敬告 | 未经允许,请勿转载,版权所有,违者必究
领取专属 10元无门槛券
私享最新 技术干货