JavaScript 中有两个用于判断两个值相等的符号:==
和 ===
。分两种情况来考虑:基本数据类型和对象。
基本数据类型
对于基本数据类型而言,===
直接比较两个基本数据类型的值是否相等,不做类型转换,==
会试图进行类型转换再比较。
1 | const s1 = '1' |
对象
对于对象而言, ==
和 ===
效果完全一样,都是用于判断两个对象是否是同一个对象。
1 | const o1 = {} |
总结
对于对象而言,==
和 ===
效果是一样的,而且是比较两个对象变量是否指向内存中的同一块区域。对于基本数据类型而言,==
在面对两个不同类型的数据时,会试图进行类型转换再比较,而===
则不会,直接比较值是否相等。
图片测试