一、区别
==会强制转换、===不会强制转换
1. 两个操作数类型相同时
- 如果都为基本数据类型
- 直接进行比较,相等为true,否则为false
- 如果都为复杂数据类型
- 当是同一个对象的引用时为true,否则为false
- 特例
- undefined == undefined → true
- null == null → true
- NaN == NaN → false
2. 操作数类型不相同时
- 有一个是number类型
- 不是number型的进行强制转换(ToNumber())
- 有一个是Object类型
- 将Object转换成基本数据类型(ToPrimitire()),再进行基本数据类型比较
- 特例
- undefined、null、NaN与任何有意义的值比较结果都为false