JavaScript中基本数据类型转化
将一个数据类型强制转换为其他的数据类型
主要指String Number Boolean 这三种之间的相互转化。
一.其他数据类型转换String
我们有两种方法可以使其他数据类型转换为String;
方法一:
调用被转换类型的toString()方法
该方法不会影响原变量,它会将转换的结果返回;
但是注意:null和undefined这两个值没有tostring方法,如果调用了这个方法浏览器会报错;
1.Number转String
var a=123;
//调用a的toString方法 调用xxx的Yyy()的方法,就是xxx.yyy();
a=a.toString();
console.log("我的数据类型是:"+typeof a);
console.log(a);
2.Boolean转String
var a=true;
a=a.toString();
console.log("我的数据类型是:"+typeof a);
console.log(a);
方式二:
调用String()函数 将被转换的数据作为参数传递给函数
该方法可用于任何类型的数字,字母,变量,表达式;
null和undefined这两个值可以用String方法来转换
1.Number转String
var a=123;
a=String(a);
console.log("我的数据类型是:"+typeof a);
console.log(a);
2.Boolean转String,和上面一样的方法,就不在重复了。
3.Null转String
var a=null;
a=String(a);
console.log("我的数据类型是:"+typeof a);
console.log(a);
4.Undefined转String ,也和上面一样,会返回数据类型为String,值为Undefined。
二.其他数据类型转换Number
转换方法一:
使用Number()函数
1.字符串转数字:如果是纯数字的字符串,则直接转换为数字;
如果有非数字的内容,则直接转换为NaN;
如果字符串是一个空串或者全是空格的字符的,则转为0;
var a="123"; //纯数字字符串
a=Number(a);
console.log("我的数据类型是:"+typeof a);
console.log(a);
var b="abc"; //非数字字符串
b=Number(b);
console.log("我的数据类型是:"+typeof b);
console.log(b);
var c="123abc"; //混合字符串
c=Number(c);
console.log("我的数据类型是:"+typeof c);
console.log(c);
var d=" "; //空串
d=Number(d);
console.log("我的数据类型是:"+typeof d);
console.log(d);
2.Boolean转Number: true:1 , false:0
var a=false;
a=Number(a);
console.log("我的数据类型是:"+typeof a);
console.log(a); //返回a=0;
3.null转Number等于0 ;
4.undefined转数字显示NaN;
转换方式二:
1.专门用来对付字符串转换数字
parseInt()把一个字符串转换为整数
可以将一个字符串中的有效整数取出来然后转换为Number
var a="123abc"
a=parseInt(a);
console.log("我的数据类型是:"+typeof a);
console.log(a);
但是我们要注意的是parseInt()它读取的规则为从左往右读取,例如字符串“123a456”;它读到a处就不在读取了,所以返回的值为123,如果字符串为“b123”,它读取第一个就不是数字,则直接返回NaN
2.parseFloat()和parseInt()的作用类似,不同的是我们可以通过它来获取有效的小数;
var a="123.456px"
a=parseFloat(a);
console.log("我的数据类型是:"+typeof a);
console.log(a);
注意:如果我们使用parseInt()或parseFloat()来转换非String类型的值(例如:ture,false,null,undefined),它们会先将其转换为String,之后在进行操作。
三.其他数据类型转换Boolean
使用Boolean函数, 函数调用:a=Boolean(a);
数字转布尔型 除了0和NaN是false,其余的都是true;
字符串转布尔 除了空串都是true;
null 和 undefined 都是false;