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