1、“==”:等同
- 两边值类型不同的时候,要先进行类型转换,再比较
- 如果两个值类型相同,进行 === 比较。
- 如果两个值类型不同,他们可能相等。根据下面规则进行类型转换
一个是null、一个是undefined,那么[相等]
一个是字符串,一个是数值,把字符串转换成数值再进行比较
如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成0再比较
如果一个是对象,另一个是数值或字符串,把对象转化成基础类型值再比较,利用它的toString或valueOf方法
2、“===”:恒等
- 不做类型转换,类型不同的一定不等
- 类型相同,值相等,结果才为true,否则为false