js数据类型转换分为两种,隐式转换和强制转换。
隐式转换
当数据类型不相同时,做数据的运算,就会自动将两端的数据转换为相同类型然后运算,这是隐式转换,
隐式转换遵从于Number() String() Boolean()
例如
var a="1"
var b=2
console.log(a+b)
显示出来的是12,这里把b=2隐式转换成为字符型,这种情况只可能发生再弱类型语句中,类型不相同,弱类型语言会自动将数据转换为对应的类型
isNaN 会隐式转换,返回一个布尔值true或false, 返回如果是true就是非数值,false就是数值
强制转换
强制将数据类型转换为某种类型。
强转字符串
String(数据) 强制转换为字符串
数据.toString(进制) 强制转换为字符串 null和undefined是不能转换的
toString可以将任何数字转换为任意进制,进制必须大于等于2并且小于等于36
也就是最小是2进制,最大是36进制,因为数字字母就36个
toFixed(小数点后几位) 将数值转换为字符串,并且按照小数点四舍五入保留位数
强转数值
Number(数据)
NaN 非数值 类型是number
纯字符---》 NaN
纯数字---》数字
部分数字,部分字符---》NaN
布尔值---》数字 true--->1 false--->0
undefined--->NaN
null--->0
强转为整数
parseInt(字符,进制) 可以将指定进制方式字符串转换为10进制数值,是toString()逆转换
纯字符---》 NaN
纯数字---》数字
部分数字,部分字符---》 通过parseInt转换数值可以从开始转换到字符前为止变成数值,如果第一位是字符,返回NaN
布尔值强转数值整型,会变成NaN
undefined--->NaN
null--->NaN
强转为小数
parseFloat(); 强转小数和parseInt类似,只不过可以保留小数位
转换为布尔值
Boolean(数据) 转换为布尔值
"" 0 false,undefined,null,NaN 转换为布尔值都会变成false,除此之外转换都是true