== 和 === 的区别
== 代表相同, ===代表严格相同(数据类型和值都相等)。
当进行双等号比较时候,先检查两个操作数数据类型,如果相同,则进行===比较;
如果不同,则愿意为你进行一次类型转换,转换成相同类型后再进行比较,而===比较时,如果类型不同,直接就是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)如果两个值都引用同一个对象或是函数,那么相等,否则不相等
浙公网安备 33010602011771号