==和===有什么区别?

文章目录

对于JavaScript中的比较运算符,可能大家用的比较多的是==,对于===很多人可能比较陌生。接下来,我们一起来看下它们之间有什么区别?

==

对于==来说,如果对比双方类型不一样的话,就会先进行类型转换

假设我们需要对比xy是否相同,就会进行如下判断流程:

1.首先会判断两者类型是否相同,相同的话就比较大小了
2.类型不相同的话,那么就进行类型转换
3.判断两者类型是否为stringnumber,是的话就将字符串转换为number

1 == '1';
比较过程如下:
1 == 1; // true

4.判断其中一方是否为boolean,是的话就会把boolean转换为number再进行判断

'1' == true;
比较过程如下:
'1' == 1;
1 == 1; // true

5.判断其中一方是否为object,另一方为stringnumber、或symbol,是的话就会把object转换为原始类型再进行判断

'1' == { name: 'dazhi' }
比较过程如下:
'1' == '[object object]'

6.会先判断是否在对比nullundefined,是的话就返回true
7.要比较相等性之前,不能将nullundefined转换成其他任何值
8.如果有其中一方是NaN,则相等操作符返回false,而不相等操作符返回true重要提示:即使两个操作数都是NaN,相等操作符也返回false了;因为按照规则,NaN不等于NaN

===

对于===,就比较简单了,就是判断两者类型和值是否相等。

总结

在实际开发中,我们应尽量使用===,而不是==

最后

好了,本文完,感谢您的阅读,如果文中有不当的地方,欢迎指正,感谢~