慕慕森
和boolean类型比较boolean会转换成数字 false为0 true为1和数字类型比较会转换为数字类型 复杂类型会走valueOf方法 没有的话走toString方法所以第一个 []==false => []==0 []默认没重写valueOf 所以走toString 数组toString默认是join 所以最后为""==0 基本类型和数字比较会走Number方法 即Number("") 返回0 最后 0==0 true第一个一样的道理 但是{}的toString为"[object Object]" Number后为NaN 所以{}==false为false第三个 复杂类型转换为boolean类型都为true 第四个 复杂类型和复杂类型比较的是内存地址 所以[1]==[1]为false