1.Number
- Number()会将 true=>1,false=>0
console.log(0==false,1==true) //=>true true
- null、""、[]=>0
console.log(
Number([]),//=>0
Number(""),//=>0
Number(null),//=>0
)
- undefined=>NaN
- {}=>NaN
console.log(Number(undefined))//=>NaN
console.log(Number({}))//=>NaN
但是!!! 虽然Number会将null、“”、[]转化为0,
""==null,null==[]
不成立 会返回false
""==null,null==[]
不成立 会返回false
""==null,null==[]
不成立 会返回false
null==undefined
返回true!!!!!
我个人理解是因为null undefined两个特殊值,不会进行类型转换 故判断双等时,并不会返回0或是false
但是null>=0 //=>true
这是因为有数字判断符号(>),js会将null转换为数字类型即 0,所以满足0>=0
2.Boolean
Boolean("")=>false
Boolean(0)=>false
Boolean(NaN)=>false
Boolean(undefined)=>false
Boolean(null)=>false
但是!!!
null==false //=>false
undefined==false //=>false
所以我还是认为这两个值在进行双等式判断时,js是不会将其进行转换的。