目录
简介:
例如String(),Number(),parsenInt(),toString()..等类似的方法,此类由我们手动转换类型的方式,称为显示类型转换
js变量的类型是由值的类型来决定的,为了解决不同类型无法进行计算,JS底层会将不同类型转换为同一类型,由JS运行环境自动帮我们去做的类型转换,称为隐式类型转换
一.数学运算符中的类型转换
(1)减、乘、除
规则:
在对各种非 Number 类型运用数学运算符 - * / 时,会先将非 Number 类型转换为 Number 类型
1. 2-true //1 首先将true转换为数字1,然后再执行 2-1
2. 2-null //2 首先将null转换为数字0,然后再执行 2-0
3. 2*undefinned // NaN undefined转换为数字NaN
4. 2*['5'] //10 ['5']首先会变成'5',然后再转换为数字5
(2)加
+ 相比与其它数字运算符,还可以用来拼接字符串
规则: 以下三条优先级从高到低
1. 当一侧为String类型,将被识别为字符串拼接,并且会优先将另一侧转换为字符串类型
2. 当一侧为Number类型,另一侧为其它基本数据类型时,会将另一侧转换为Number类型
3. 当一侧为Number类型,另一侧为引用类型时,将两侧都转化为字符串进行拼接
二.逻辑语句中的类型转换
(1)单个变量
(2)使用==比较
这种比较分为两类
- 类型相同
- 类型不同 类型相同时不会发生隐式转换,于是我们只谈类型不同之时,这里的规律比较复杂,不过只要牢记一个点,进行+运算时是
如果获取的原始值当中包含String,则对所有原始值执行toString处理后进行拼接
而进行逻辑运算时,刚好相反
如果获取的原始值当中包含String,则尽量将String转为Number类型后进行比较