简单来讲:
== 相等 ===恒等
详细来讲:
一、下面的规则用来判断两个值是否恒等(===)
条件 | 是否相等 |
---|---|
类型不同 | 不相等 |
如果两个都是数值,并且是同一个值 | 相等 |
如果两个都是字符串,且相等 | 相等 |
如果两个值都是true,或者都是false | 相等 |
如果两个值都引用同一个对象或者函数 | 相等 |
如果两个值都是null,或者undefined | 相等 |
二、下面的规则用来判断两个值是否相等(==)
1.如果两个值类型相同,进行===比较。
2.如果两个值类型不同,他们可能相等,根据下面规则进行类型转换再比较:
情况 |
---|
2.1.null == undefined |
2.2.如果一个是字符串,一个是数值,把字符串转换成数值再进行比较 |
2.3.如果任一个值是true,把它转换成1再比较;如果是false,则把它转换成0再比较 |
2.4.如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。 |