一:隐式类型转换
1. + 只有有一边不是数值就做拼接
2. / - * % 转数值
3. <= >= > < == != 转数值
4. && || ! 转布尔
二:显示类型转换
1. 其他转布尔:Boolean(要转换的数据)
- 非空字符为true
- 0和NaN为false
- 对象和数值和函数为true
- undefined和null为false
2. 转字符:String(要转换的数据)什么都可以转;要转换的数据.toString()除了null和undefined不能转;要转换的数据.tofixed(n)四舍五入,主要处理数值
- 直接加引号
- 将中括号替换成引号
- 转成[object object]
3. 转数值:
- 非严格 parseInt(要转换的数据),用于数值和字符转数值,取整;parseFloat(要转换的数据),用于数值和字符转数值,取整
- 从左往右取整,能转则转,不能转停止,若第一位不能转直接NaN
- 严格转换:Number(),Math.round()
- 任意位置不能出现非数值,否则就是NaN
- 空字符和空格为0
- true为1,flase为0
- 对象,函数,undefined 为NaN
- 空数组和null为0
- 数组:有且只有一位能转成数值得分数据为该数据,否则NaN