JS:==和===

都是用来检测两个操作数是否相等

基础类型

对于如string、number、null、undefined、boolean等基本数据类型
==:

  • 对于同一类型的比较,会直接进行值的比较。
  • 对于不同类型的比较,会先进行类型转换,再进行值的比较。
    1. 如果一个是null,一个是undefined,那么相等。
    2. 如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较。

===:

  • 对于同一类型的比较,会直接进行值的比较。
  • 对于不同类型的比较,结果一定是不相等。即不仅进行值的比较,还要进行类型的比较。

高级类型

对于array、object等高级类型,\==和===是没有区别的,都是进行“指针地址”的比较。

基础类型和高级类型

==:

  • 将高级类型转换为基础类型,进行值的比较。
1
2
console.log([66]==66); //true
console.log([66,1]==66); //false

===:

  • 类型不同,结果一定为不相等。
-------------本文结束 感谢您的阅读-------------