js中基本类型的转换,进制的转换
一、基本类型的转换
1.数字转字符串
//直接给数字加空的字符串。 var num=20; var str=20+" "; console.log(typeof str);//string //使用String()函数,让数字更加显示的转为字符串 var num=20; var str=String(num); console.log(typeof str);//string //使用toString()方法。toString()有一个参数,用来指定转换的基数。(十进制/二进制/八进制/十六进制) var num=20; var str=num.toString(10); console.log(typeof str+","+str);//string,20
2.字符串转数字(转换函数、强制类型转换、js变量弱类型转换)
parseInt()和parseFloat()函数。
//parseInt(),两个参数,第一个要转换的字符串,第二个是指定转换的基数(可省略) /*当第二个参数省略时 str以“0x”开头,解析为十六进制的整数 str以“0”开头,解析为八/十六进制的整数 str以1~9开头,解析为十进制整数*/ var str="123hahaha"; var num=parseInt(str); console.log(num+","+ typeof num);//123,number console.log(parseInt("22.5"));//22 console.log(parseInt("0xA"));//10 console.log(parseInt("blue"));//NaN //parseInt也可以用来把小数转为整数 console.log(parseInt(233.45));//233
//parseFloat没有基模式
console.log(parseFloat("22.5hahaha"));//22.5
强制类型转换 Number(value)把值转为整数或浮点数
console.log(Number("123.99haha"));//NaN console.log(Number("123.9"));//123.9
js弱类型转换
var str="123"; var n1=str-0; var n2=str*1; var n3=str+0;//相当于给数字加了一个字符串,所以还是字符串 console.log(n1+","+typeof n1);//123,number console.log(n2+","+typeof n2);//123,number console.log(n3+","+typeof n3);//1230,string
3.其他类型的转换
//Boolean(value);//把值转为布尔值 console.log(Boolean(0))//false;
//数组->字符串 //join(),数组的方法,把数组的元素都放在一个字符串里(元素通过括号中的字符进行分离)。 var arr=[2,3,4,5]; var str1=arr.join(""); var str2=arr.join("-"); console.log(str1+","+typeof str1);//2345,string console.log(str2+","+typeof str2);//2-3-4-5,string
//字符串->数组 //concat()数组方法,连接数组,并返回结果。split()数组方法,以指定方式分割数组 var str="abcdef"; var a1=[].concat(str); var a2=str.split("");// console.log(a1+","+typeof a1);//abcdef,object console.log(a2+","+typeof a2);//a,b,c,d,e,f,object
二、进制转换
1.十进制转为其他进制
使用toString
var num=20; //为了不改变其类型需要加上parseInt var a=parseInt(num.toString(2));//十进制->二进制(除以2取余数,倒着往上数) var b=parseInt(num.toString(8));//十进制->八进制(除以8取余数,倒着往上数) var c=parseInt(num.toString(16));//十进制->十六进制(除以16取余数,倒着往上数) console.log(a+","+typeof a);//10100,number console.log(b+","+typeof b);//24,number console.log(c+","+typeof c);//14,number
2.其他进制转十进制
var d=parseInt(10100,2);//二进制->十进制 var e=parseInt(24,8);//八进制->十进制 var f=parseInt(14,16);//十六进制->十进制 console.log(d+","+e+","+f);//20,20,20
3.其他进制的转换
//八进制、十六进制->二进制 var a=parseInt(257,8).toString(2); var b=parseInt("af",16).toString(2); console.log(a+","+typeof a);//10101111,string console.log(b+","+typeof b);//10101111,string //二进制、八进制->十六进制 var c=parseInt(10101111,2).toString(16); var d=parseInt(257,8).toString(16); console.log(c+","+typeof c);//af,string console.log(d+","+typeof d);//af,string ////二进制、十六进制->八进制 var e=parseInt(10101111,2).toString(8); var f=parseInt("af",16).toString(8); console.log(e+","+typeof e);//257,string console.log(f+","+typeof f);//257,string //根据需要自行更改值的类型