一、if(xx)
如果括号内是布尔类型,直接判断。否则括号里的表达式会被强制转换成布尔类型,转换规则如下:
1.undefined转换为false
2.null转换为false
3.number:+0,-0,NaN会被转换为false,其他会被转换为true
4.string:空字符串为false,其他为true
5.object:转换为true
二、a==b
1.undefined=null
2.a和b中有数字类型或者布尔类型,都转换为数字进行判断比较
3.如果一个为对象,一个为字符串或者数字,把对象转换为数字进行比较判断
附:转换规律
1.undefined转换为NaN
2.null转换为0
3.布尔类型:true转换为1,false转换为0
4.字符串:非数字字符串转为NaN,数字字符串转为数字值
5.对于object对象,先调用.valueOf,没有再调用。toString