JavaScript中的数据类型转换

正常来说,如果两个不同类型的数据相加就会报错。

但是在JavaScript中会有自动类型转换,这种转换只会发生在弱类型语句中。

不用给定变量类型,可以随意改变值的类型,所以我们就需要考虑变量是什么类型,才能操作

      var a="1";
         var b=3;
         console.log(b+a);//转换为string类型
         console.log(b-a);//转换为Number类型

        var c=10;
        c="a";

 

强制转换

主动的将数据的类型强制转换为某种类型

1、String(数据):强制转换为字符串

  tips:可以转换null和underfined类型

    var a=String(10);
    var num=10;
    var a=String(num);

2、toString()强制转换为字符串

  使用方法:数据.toString()

  tips:1)不可以转换null和underfined;

      2)toString(数字)可以将任何数字转换为任意进制,toString转换进制的范围在大于等于2小于等于36之间(0——9+26个字母)

var num=10;
var a=num.toString(a);

 var clolo=255;
 var c=color.toString(16);
 console.log(c);

3、toFixed(小数点后几位):将数值转换为字符串,并且按照小数点四舍五入保留位数;根据前后的数据确定是不是四舍五入还是五舍六入。会有精度误差(任何数据都要转换成二进制,但是原生js二进制小数转换以后恢复到数值时,是有误差的)

 var a = 12.256;
 console.log(a.toFixed(2)) ; 

4、强转数值Number()

  1)NaN --------->非数值 类型是number

  2)纯字符 ------>-NaN

  3)纯数字 ------>数字

  4)部分数字,部分字符 ------>NaN

  5)布尔值 ----->数字

    true----1;false----0;

  6)undefined ----->NaN

  7)null ------>0

 5、强转整数praseInt()

    praseInt(字符,进制)可以将指定进制方式字符串转换为10进制数值,是toString()的逆转换

  1)纯字符------NaN

  2)纯数字------数字

  3)部分数字,部分字符----通过praseInt()转换数值可以从开始转换到字符前为止变成数值,如果第一位是字符,返回NaN

  4)布尔值强转数值整型,会变成NaN

  5)underfined-----NaN

  6)null-----NaN

6、强转小数praseFloat()

   强转小数和强转整数praseInt()差不多,只不过可以保留小数位

7、转换为布尔值Boolean()

  Boolean(数据)转换为Boolean值

  "" 0 false underfined null NaN 转换为布尔值都会变成false,除此之外都是true

  tips:注意""里面没有空格

隐式转换

当数据类型不相同时,做数据的运算,就会自动将两端的数据转换为相同类型然后运算,这是隐式转换,隐式转换遵从于String() Number() Boolean();隐式转换效率很低

 

    var a=6;
    var b="a";
    var c=true;
    console.log(a+b);//这里会将a隐式转换为字符串,并且相加首尾相连
    console.log(a+c);//7
    console.log(a-b);//减法会隐式转换将a和b都转换为数值  NaN

 

  tips:- * / %都是隐式转换为数值运算,不管有没有字符

 

原文地址:https://www.cnblogs.com/shewill/p/12542300.html