// 根据转换规则
[]==![] //true 步骤[]==false []==0 ''==0 0==0
[]==[] //false 数组也是特殊的对象 对比的是内存地址
{}==!{} //false 步骤{}==false {}==0 '[object Object]'==0 NaN==0
{}=={} //false 同上对象是引用类型对比的是内存地址
{}==true //false 步骤{}==1 '[object Object]'==1 NaN==1
!{}==true //false 步骤false==true
!{} //false 步骤!布尔运算符非(求反) 除'' 0 false null undefined NaN为false值其他为true值
{}==true //false 重复了吧 不在解释
{}==!{} //false 也重复了
{}===!{} //false 有用严格等于 类型也要一样 {}===false 类型不相等直接为false 其他的想都不用想
{}=={} //false 重复了
{}==={} false 对象引用类型对比的是内存地址
if ({}) {console.log("true")} // 你就想象隐式转换Boolean({}) 上面也说了除'' 0 false null undefined NaN为false值 其他为true值