(var a = []
var b = "0"
console.log(a==0)
console.log(a==!a)
console.log(b==0)
console.log(a==b)
答案:true,true,true,false
解析:
1.基本数据类型转换会转换成Boolean类型,如果判断对象里面有数组对象,会先调用.valueOf(),再调用.toString()方法
第一个:a是对象类型,会调用valueOf(),再调用toString()方法转换成‘’==0,
3.如果是原始类型的值,原始类型的值会转换成数值再进行比较,调用Number()方法,
第三个:Number(b)=0,转换成0==0
2.null,undefined,NaN以及空字符串取反都为true,其余都为false,
第二个:!优先级高于==,所以a取反成了!【】成了false,(注释:【】是true),前面的a会转换成“”,
“”’===false,所以是true