js数据类型转换
在介绍数据类型转换之前先来简单介绍一下数据类型有哪些:
在js中,数据类型有以下几种类型:
1.字符型(string):一般为文本型数据,定义时必须用双引号或单引号括起来;
2.数值型(number):最基本的数据类型,定义时不加双引号和单引号;
3.布尔型(boolean):真和假,是与非,true=1,false=0;
4.未定义值(undefined):就是定义变量时,没有赋值;
5.空值(null):当一个变量以指针形式指向堆中地址时,当我们不在需要时就必须要设置变量值为null;
数据类型转换
1.判断数据类型(typeof)
返回数据类型
例如:var a=”aaa”;
console.log(typeof a);
返回值是string;
2.隐式转换
当数据类型不同时,做数据运算,就会自动将两端数据转换为相同类型然后运算,它遵从强制转换
var a=5;
var b=”3”;
console.log(a+b);
如果正常来说,两个不同类型的数据相加就会报错,但在这里发生了隐式转换,所以返回值为53;
这种情况只能发生在弱类型语句中,类型不相同,弱类型语言会自动将数据转换为相对应的类型。
3.强制转换
主动将数据类型转换为某种类型
① 强制转换为字符串:String();
var a=10;
var b=String(a);
console.log(typeof a); /返回值为number
console.log(typeof b); /返回值为string
除了上面的那种写法,还可以这样写:
数据.toString(进制)
null和undefined不能转换,进制从2到36,因为数字加字母一共就36个。
② 强制转换为数值:Number();
NaN 非数值,类型为number
纯字符-->NaN;
纯数字-->数字;
部分数字,部分字符-->NaN;
布尔值-->数字:当布尔值为true时,转换数字为1,布尔值为false时,转换数字为0;
undefined-->NaN;
null-->0;
③ 强转为整数:parseInt();
parseInt(字符,进制):可以将指定进制的字符串转换为10进制数值,是toString()的逆转换;
纯字符-->NaN;
纯数字-->数字;
部分数字,部分字符-->通过parseInt转换数值可以从开始转换到字符前变为数值,如果第一位是字符,返回NaN;
布尔值-->NaN;
undefined-->NaN;
null-->NaN;
④ 强转为布尔值:Boolean();
除了“”,0,false,undefined,null,NaN转换为布尔值为false,其余都为true。