强制类型转换
把数据类型转为string(字符串类型)
1.利用var val = num.toString(a);
用点的方法调用执行,将num转为字符串类型
var val = num.toString(a);a可以表示进制;当a=2;此时会将num这个值通过 调用 toString方法来转换成2进制的数
注意:这个方法不能把null和undefined类型转为字符串,会报错、
2.利用string函数来转换类型
string函数将null,undefined转为字符串类型不会报错;、
var val =String(a);将a的类型直接转为字符串类型;
调用string原理:
对于number、Boolean用的是to.String原理;
对undefined和null底层直接转为undefined、null;
从用户输入的字符类型都是字符串
把数据类型转为number(字符串类型)
可以直接利用number( )把值转为number类型;
a=number(b),将b转为number类型;
当要转换值为false、null、空字符串("")、空格字符串(" ")、转为number类型结果都是0;
当值为true的时候转为number类型结果是1;
当值不是一个纯数字的时候或者为undefined的时候转为number类型结果是NaN;
注意"011"代表的是字符串所以转为number的结果是11;而011表示的是八进制转转为number的结果是9;
把数据类型转为parseInt();功能是:把一个值转换成整数(字符串类型)
跟number类型的区别就是把null和boonean类型转换结果都是NaN;
把数据类型转为parseFloat();功能是:把一个值转换成小数
parseFloat()和parseInt()一般是对于字符串来使用的
Boolean();//把一个值转换成布尔值
总结:
Boolean转换 非0的数字都是true ,0为false 非空的字符串都是true,空字符串都是false null,undefined,NaN都是false 所有的引用数据类型都是true;
隐匿类型转换
字符串隐匿类型转换
所有类型和字符串相加都会被自动转为字符串类型,可利用这个特性把数据类型转为字符串类型;
如 1+" "="1"他会自动将1转为字符串
常用方法:
b="a"+1;
b=" "+1;
console.log("b="+b)
都可将b转为字符串
数字隐匿类型转换
所有非number类型和number相减、相乘、相除都会将非number类型转为number类型再进行计算;
常用:
b="b"-0 b=1*"b" b="b"/1都可将b转为number再进行计算
布尔隐匿类型转换
对任意值取!(非)的时候都会先将值转为Boolean再进行非计算;
所以可用 !!b 将b 转为布尔类型;b的值不变;
当进行逻辑运算时候都会将类型转为Boolean进行判断