JS数据类型转换
在JS中受到一些输入输出方式的限制,需要我们主动去转换数据的类型,以适应我们的需求。
转换为字符类型
String(数据/变量)
可以把任何类型数据转换为字符。
调用方式:
var a=String(num); //n本身的数据类型并未发生变化
变量.toString()
除某些数据类型,如null和undefined不能通过这种方式转换。
可以把其他类型数据转换为字符。
调用方式:
var a=num.toString();//num本身的数据类型并未发生变化
转换为数值类型
这里我们首先要认识一个概念NaN
,意为非数值,他的数据类型为number
。
Number(数据/变量)
并不是所有的字符类型都能转换为数值,有些会转换为NaN
。
var num=Number("你好");//num=NaN 纯字符---> NaN
var num=Number("12.45");//num=12.45 纯数字--->数字
var num=Number("1a");//num=NaN 部分数字,部分字符 ---> NaN
这种转换方式会完整保留小数位。
布尔类型会转换为数字0,1。
var num=Number(true);//true--->1
var num=Number(false);//false--->0
null和undefined转换结果不同。
var a;
var num=Number(a);//undefined--->NaN
var b=null;
var num=Number(b);//null--->0
parseInt(数据/变量)
将其他数据类型转化为整数。
对字符串,从第一位开始检查,是数字就转化,直到第一个不是数字的字符为止。
所以,对部分数字,部分字符的字符串,有两种结果。
var num=parseInt("1a");//num=1
var num=parseInt("b1");//num=NaN
对纯字符的字符串,和Number效果一样。
var num=parseInt("你好");//num=NaN 纯字符---> NaN
对纯数字的字符串,只保留整数位。
var num=parseInt("12.45");//num=12 纯数字--->数字
布尔类型,null和undefined都只能转化为NaN
。
var num=parseInt(true);//true--->NaN
var num=parseInt(false);//false--->NaN
var a; //逆战班,与你同行
var num=parseInt(a);//undefined--->NaN
var b=null;
var num=parseInt(b);//null--->NaN
parseFloat(数据/变量)
将其他数据类型转化为小数。
除会完整保留小数位以外,转化效果与parseInt一致,这里不多做赘述。
var num= parseFloat("12.45");//num=12.45 纯数字--->数字
转换为布尔类型
Boolean(数据/变量)
"",0, false,undefined,null,NaN
转换为布尔值都会变成false
,除此之外转换都是true
。
var a=" ";
console.log(Boolean(a));//true
var b="";
console.log(Boolean(b));//false
typeof 判断数据类型
帮助我们判断储存的数据的类型。
调用方式:
var type=typeof "aaa";//type=string