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

//根据需要自行更改值的类型

 

posted on 2017-09-28 23:28  Rcyan  阅读(358)  评论(0编辑  收藏  举报

导航