隐式转换
1,当不同数据类型进行相互运算的时候,
2,当对非布尔类型的数据求布尔值的时候
预期为数字的时候:
算术运算的时候,我们的结果 和 运算的数都是数字,数据会转换为数字进行计算(- * / %)
类型 | 转换前 | 转换后 |
number | 4 | 4 |
'1' | 1 | |
string | 'abc' | NaN |
' ' | 0 | |
boolean | true | 1 |
boolean | false | 0 |
undefined | undefined | NaN |
null | null | 0 |
预期为字符串的时候:
转为字符串 使用+号时候,会自动转换为字符串
预期为布尔的时候:
转换为布尔值,undefined null '' 0 NaN -->false 其余为 true
强制类型转换
转换为数值Number(),parseInt(),parseFloat()转换函数
Number 在进行转换时候,遇到不能转换为数值的,就返回数值NaN;能返回浮点数 整体进行转换
parseInt()在进行转换时候,遇到不能转换为数值的,就返回能转换的正整数 单独转换
parseFloat() 能返回浮点数 单独转换 只能解析第一个小数点
前者把值转换成整数,后者把值转换成浮点数。
String类型调用这些方法,这两个函数才能正确运行;如果遇到非数字,返回NaN Not a Number
小技巧:
转换字符串 a=""+数据
转换boolean !!数据类型
转换数值 数据类型*或/1;容易误解