虽然标准中写的 `==` 十分复杂,但是归根结底,类型不同的变量比较时 `==` 运算只有 3 条规则: - `undefined` 与 `null` 相等; - 字符串和 `bool` 都转为数字再比较; - 对象转换成 `primitive` 类型再比较,如果转换后与右边类型相同,不再转为数字