“==”:等同(先类型转换,再比较)
- 如果两边值的类型不同的时候,要先进行类型转换后,才做比较
- 如果两个值类型相同,则进行“===”比较
- 如果两个值类型不同,它们可能相等
- 如果一个是 null,一个是 undefined
- 如果一个是字符串,一个是数值;先把字符串转成数值再进行比较(如:“1”== 1)
- 如果任一值是 true,把它转换成 1 再比较
- 如果任一值是 false,把它转成 0 再比较
“===”:恒等(类型不同,一定不等)
- 不需要进行类型转换,如果两边值的类型不同,就表示一定是不等的
- 相等
- 如果两个都是数值,并且都是同一个值
- 如果两个都是字符串,且每个位置上的字符都一样
- 如果两个值都是 true,或者都是 false
- 如果两个值都引用同一个对象或函数
- 如果两个值都是 null,或者都是 undefined
- 不相等
- 如果其中至少一个是 NaN(判断一个值是否 NaN,只能通过 isNaN() 来判断)