都是用来检测两个操作数是否相等
基础类型
对于如string、number、null、undefined、boolean等基本数据类型
==:
- 对于同一类型的比较,会直接进行值的比较。
- 对于不同类型的比较,会先进行类型转换,再进行值的比较。
- 如果一个是null,一个是undefined,那么相等。
- 如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较。
===:
- 对于同一类型的比较,会直接进行值的比较。
- 对于不同类型的比较,结果一定是不相等。即不仅进行值的比较,还要进行类型的比较。
高级类型
对于array、object等高级类型,\==和===是没有区别的,都是进行“指针地址”的比较。
基础类型和高级类型
==:
- 将高级类型转换为基础类型,进行值的比较。
1 | console.log([66]==66); //true |
===:
- 类型不同,结果一定为不相等。