console.log(false == [])
console.log(false == ![])
console.log([] == ![])
比较优先级
比较的时候, !优先级最高 ,隐式转换 其次 ,== 最后
true 转为数字是 1 // Number(true) 返回1
false 转为数字是 0 // Number(false) 返回0
[] 转为字符串是 "" // String([]) 返回""
[] 转为数字是 0 // Number([]) 返回0
[] 转为布尔值是 true // Boolean([]) 返回true
相等运算符(== ),两个操作数类型不同时
// 如果-个值是null, 另一个是undefined,则它们相等
null == undefined //返回true
//数字和字符串比较,先将字符串转换为数字,然后使用转换后的值进行比较
1 == "1" //结果是true
1 == "01" //结果是true
// 如果其中一个值是Boolean, true转换为1,false转换为0,再进行比较
"1" == true //1==1 结果是true
console.log(false == [])
console.log(false == ![])
console.log([] == ![])
false == []
// false转换成0,[] 转为数字也是 0 结果是true
false == ![]
// ![] :[] 转成布尔是true,![] 是false,结果是true
[] == ![]
// ![] :[] 转成布尔是true,![] 是false,false转换成0,[] 转为数字也是 0 结果是true