JS数据类型转换
一、数据类型转换
在js中数据类型转换一般分为两种,即强制类型转换和隐式类型转换(利用js弱变量类型转换)。
强转换:
隐式类型转换:
利用函数parseInt() ,parseFloat() ,Number(),Boolean()进行数据转换,顾名思义,前两个分别是对数据进行解析转换,前者是整数,后者是浮点数。他们解析的原则是从前往后进行解析,尽其所能。若存在有能识别的数字就解析,如果第一位就不是数字则返回NaN.Number则是对整体进行判断,是数字返回数字,否则NaN.Boolean()则是对是否存在和真假进行判断进行判断。
// String(); 强制转换为字符串
/* var num=null;
var a=String(num);
console.log(a);
console.log(typeof num);
console.log(typeof a); /
/ var num=10;
var a=num.toString(2);
console.log(a);
console.log(typeof num);
console.log(typeof a); */
// toString可以将任何数字转换为任意进制
// var color=255;
// var c=color.toString(36);
// console.log©;
// 强转数值
// NaN 非数值 类型是number
// var str=“你好”;//纯字符 NaN
// var str=“12”;//纯数字 数字
// var str=“1a”;//部分数字,部分字符 还是NaN
// var num=Number(str);
// console.log(num);
// var b=false;
// 布尔值
// var num=Number(b);
// console.log(num);
// var a;
// var a=null;
// var num=Number(a); //undefined—>NaN null—>0
// console.log(num);
// 强转为整数
// var str=“你好”;//纯字符—》NaN
// var str=“20”;
// var num=parseInt(str);//如果 第二个没有填值,则表示10进制数值转换
// num :20
// var str=“1010”;//纯数字—》整数
// var num=parseInt(str,2);//将2进制字符串转换为数值
// num :10
// var str=“FF”;
// var num=parseInt(str,16);//将16进制字符串转换为数值
// console.log(num);
// #FF0000
/* var str=“FF0000”;
var num=parseInt(str,16);
console.log(num); */
// parseInt(字符,进制) 可以将指定进制方式字符串转换为10进制数值,是toString()逆转换
// var str=“16a”;//部分数值部分字符 16
// var str=“a16”;//部分数值部分字符 NaN
// var num=parseInt(str);//按照10进制转换 16
// var num=Number(str);//NaN
// 通过parseInt转换数值可以从开始转换到字符前为止变成数值,如果第一位是字符,返回NaN
// console.log(num);
// 布尔值强转数值整型,会变成NaN
// var str=false;
// var num=parseInt(str);
// console.log(num);
// undefined null 强转整型都是NaN
// var str;
// var str=null;
// var num=parseInt(str);
// console.log(num);
// parseFloat(); 强转小数
// 转换为布尔值
// Boolean(数据) 转换为布尔值
// var str=“aaa”;
// var b=Boolean(str);
// console.log(b);
// var str1="";
// var str2=0;
// var str3=false;
// var str4;
// var str5=null;
// var str6=NaN;
// “” 0 false,undefined,null,NaN 转换为布尔值都会变成false,除此之外转换都是true
// var a=" ";
// console.log(Boolean(a));//true
// var b=3;
// var c=3;
// console.log(Boolean(b-c));
// var d=0.2;
// var e=0.2;
// console.log(Boolean(d-e));
// var str=“0a”;
// console.log(Boolean(str)); //将字符串转换为布尔值
// console.log(Boolean(parseInt(str)));//将字符串转为数值然后在转换为布尔值
隐式类型转换:
隐式类型转换和java中大不相同,在js中数据类型不严格,没有浮点和整型,这里的隐式类型转换指的是字符串和数值类型之间的转换,在进行字符串和数字之间进行减乘除取模运算或者进行比较运算时,他会自动把字符串转换为数字。转换数字的默认方法是调用Number(),进行加法运算则是将数字看成字符串进行拼接。
// var a=6;
// var b=“a”;
// var c=true;
// console.log(a+b);//这里将a隐式转换为字符串,并且相加首尾相连
// console.log(a+c);
// console.log(a-b);//减法会隐式转换将a和b都转换为数值 NaN 6-NaN