javascript中常见的数据类型转换总结

1.任意类型--->字符型

1)String

var a=35.278,
            b=true,
            c,
            d=null;
            // 强制转换
        a=String(a);
        b=String(b);
        c=String(c);
        d=String(d);
        console.log(a,b,c,d);                 结果:  35.278 true undefined null

2)toString

如果直接使用就是转换为字符串,如果加入参数数值2-36之间,得到对应的进制,字符型
       var  a=35.278,
            b=true,
            c,
            d=null;
            // 强制转换
        a=a.toString(2);
        b=b.toString();
        c=c.toString();  ×
     d=d.toString(); ×
     console.log(a,b,c,d); 注: 1.toString()中的参数是转换成对应的进制,范围是2-36 2.undefined,null不能使用toString

3)toFixed

数值转换为字符串并且保留几位小数,参数是任意正整数,具备四舍五入的功能
var a=35.278;
a=a.toFixed(2);
console.log(a)                    结果:  35.28     注:()内的参数是保留的小数,只能是正整数。

4).科学计数法

var a=35.278var b=46.325;

        a=a.toPrecision(1)     有效数字
        b=b.toExponential(4); 小数点后几位
        console.log(a,b);          结果:4e+1 4.6325e+1

总结:数值型,布尔型,undefined,null都可以转换成字符型,控制台字体颜色为黑色

2.任意--->数值型

1)Number

      var a="a",
            b="24.56",
            c="5a",
            d=true,
            e=false,
            f,
            g="101",
            i="FF",
            h=null,
       g=""; // 强制转换为数值 a=Number(a); // 如果字符不是数字,转换后变为NaN b=Number(b); // 如果字符串内是纯数字,转换后为数字 c=Number(c); //如果字符串是由字符和数字组成,通过Number转换后是NaN d=Number(d); //布尔值通过Number转换,true--->1,false---->0 f=Number(f); //如果是undefined型,转换后就变为NaN h=Number(h); // null转换后变为0
     g=Number(g); //空字符转换后为0 console.log(a,b,c,d,f,h); 结果:NaN 24.56 NaN 1 NaN 0 0

总结:只有纯数字的字符串,布尔型(false,true),null,空字符("")   这5个转换数值型后是有数值,别的都是NAN,(NAN是数值型的非数值)

补充:

var a=" 32 " 头部和尾部的空格会自动去除   转换为number是32
var b="21 1" 中间有空格,转换为number是NaN
var c=" "
//头部和尾部的空格会自动去除,中间的不会。空字符串中不管有多少空格,只要是转换为number都会自动清除,结果0。

var d=" ";
console.log(Boolean(a)); 结果是:true
注:有空格的字符串转换为布尔值时不能清除空格。

trim()可以清除字符串头部和尾部的空格,但是不能清除中间的空格。
var a=" 1 2 "
console.log(a.trim()); 结果是:"1 2"

2)parseInt     

将字符串转换为整形

var  a="ff",
       b="5a";
       a=parseInt(a,16);    // 1.可以取整,不四舍五入,2.可以按照第二个参数将字符串转进制位10进制,toString()的逆转换

    console.log(g);
       b=parseInt(b);      //从开始到第一个字符为止的内容转换为字符串,第一个是字符就会变成NaN,取整功能,这点要和Number分清楚,对于"5a"这种字符串,Number的结果是NAN
       console.log(b)
布尔值转换是NaN,会自动转换为字符,然后再转数值
var  d="false",
       h="null";
       
        d=parseInt(d);
        console.log(d);
        h=parseInt(h);
        console.log(h);          结果: NAN   NAN

3)parseFloat 

将带有小数的字符转换为浮点数
 var b="35.56"
 
b=parseFloat(b);
  console.log(b);          结果: 35.56

3.任意--->布尔型

      var   a="",
            b=0,
            c,
            d=null,
            e=NaN;

        a=Boolean(a);
        b=Boolean(b);
        c=Boolean(c);
        d=Boolean(d);
        e=Boolean(e);
        console.log(a,b,c,d,e);               结果:false false false false false

  总结:除了"",0,false,undefined,null,NaN,其他任何内容转为布尔值都是true

4.任意--->Object

  var   a=5;
        a=Object(a);
        console.log(a);    结果: Number {5}__proto__: Number[[PrimitiveValue]]: 5    数值类型转换成了数值对象型
var obj={a:1,b:2};
 obj=obj.toString();
console.log(obj);          结果:[object Object]      只有对象转换成字符型,才能使两个object