数据类型转换:分为强制转换和隐式转换两种
1.数值转字符串
var a=1.23;
var b=String(a);//类型强制转换
console.log(b);//1.23
a=String(a);//将转换为字符串覆盖原有的变量
a=a+"";//利用隐式转换方式,没有强制转换,根据运算特征自动转换为字符串,隐式转换
//隐式转换使用的转换发放是自动执行String(a)
toString()实际上是Object对象的方法,因此,万物皆对象,任何类型都可以调用这个方法
var a=15;
a=a.toString(16);//参数必须是2-36之间,否则报错,转换为指定的进制数
console.log(a) //f
toFixed(小数点位数) 转换为字符串,并且保留小数点位数,自动四舍五入
var a=1.23456;
a=a.toFixed(2);
console.log(a);//1.23
2.数值转换为布尔值
除了0以外所有的数值转换为布尔值都是true,0转换为布尔值是false
3.数值转换为对象
var a=0;
a=Object(a);//数值型对象,存储在堆中
console.log(typeof a);
4.字符串转换为数值
var a="1.1466";
a=Number(a);//强制转换为数值类型 1.1466 打印字体为蓝色
a=parseInt(a);//转换为整数 1
a=parseFloat(a);//转换为浮点数 1
var b=10111;
b=parseInt(b,2);//将字符串转换为2进制
console.log(b);//23
var color="FF0000";
color=parseInt(color,16);
console.log(color); //16711680
a=parseFloat();//不能转换进制
NaN 数值类型中的非数值
隐式转换遵从Number()转换方法
5.字符串转换为布尔值
仅空字符串转换为布尔值时,是false,除此之外全部是true
var str="";
str=Boolean(str);
console.log(str);//false
字符串转换为对象
var str="aa";
str=Object(str);
console.log(str);//String {"aa"}
var str=" a a ";
str=str.trim();//清除字符串前后空格
console.log(str);//a a
布尔转换为数值:true转换为1,false转换为0
布尔值转换为字符:转换后就是字符true和false
布尔值转换为对象:转换后就是布尔值对象
任何类型转换为布尔值
var a=0;
var b='';
var c=undefined;
var d=NaN;
var e=null;
var f=false;
以上6种转换布尔值是false,其他都是true
undefined null转换为字符串和数值
var a;
var b=null;
a=Number(a);//转换为数值是NaN
b=Number(b);//转换为数值是0
a=parseInt(a);//NaN
b=parseInt(b);//NaN
console.log(a,b);