== 和 === 的区别

== 代表相同, ===代表严格相同(数据类型和值都相等)。

当进行双等号比较时候,先检查两个操作数数据类型,如果相同,则进行===比较;

如果不同,则愿意为你进行一次类型转换,转换成相同类型后再进行比较,而===比较时,如果类型不同,直接就是false。

 

双等号==:

1)如果两个值都是null,或是undefined,那么相等;如果一个是null,一个是undefined,那么相等;

2)如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较;

3)如果是整数类型和boolean类型的数值进行比较,1和true使用==比较结果为true,0和false使用==比较结果也为true,其它都为false;可以理解记忆为使用==比较整数时将1等同true,将0等同false。

 

三等号===:

1)如果类型不同,就一定不相等;

2)如果两个都是数值,并且是同一个值,那么相等;如果其中至少一个是NaN,那么不相等。(判断一个值是否是NaN,只能使用isNaN( ) 来判断)

3)如果两个都是字符串,每个位置的字符都一样,那么相等,否则不等;

4)如果两个值都是true,或是false,那么相等;

5)如果两个值都引用同一个对象或是函数,那么相等,否则不相等;

6)undefined和null:同为undefined或null,不管怎么比都为true;一个为null,一个为undefined,==(双等号)比较为true,===(三等号)比较为false。

7)如果两个值都引用同一个对象或是函数,那么相等,否则不相等

posted @ 2020-08-03 15:09  KepCalm  阅读(2191)  评论(1)    收藏  举报