1.转为布尔值:
条件判断的时候,除了undefined null fasle NaN ‘’ 0 -0,其他所有的值都为true,包括所有的对象

2.转为数字
Number() 如果转换的里面有任意一个值不少不是数值就返回NaN
parderInt() 如果第一个字符是数字,直到遇见不是数字的为止,如果第一个不是数字或者字符返回NaN
parseFloat()如果第一个字符是数字,则直到遇见的不是数字为止,如果第一个不是数字或者字符就返回NaN

3.转为字符串
.toString() 不可以转null和undefined
String() 都可以转
隐式转换 +“”

4.对象转为原始类型
x.valueOf() 如果转换为基础类型,就返回转换的值
x.toString() 如果转换为基础类型,就返回转换的值
如果都没有返回原始类型就会报错

5.四则运算
如果运算的一方是字符串,另一方也转换为字符串
如果运算的一方不是字符串或者数字,那么也会转换为数字或者字符串
对于除了加法的运算符来说,只要一方是数字,另一方就会被转为数字
对于比较运算符,如果是对象,通过toPrimitive转换对象,如果是字符串,就通过unicode字符串索引来比较