zoukankan      html  css  js  c++  java
  • 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:- * / %都是隐式转换为数值运算,不管有没有字符

     

  • 相关阅读:
    协方差矩阵
    SLAM中的关键帧是什么?有什么用?如何选择关键帧?
    EKF算法与非线性优化算法的比较
    LC217 存在重复元素
    LC42 接雨水
    LC20 有效的括号
    LC3 无重复最长子串
    LC4 寻找两个有序数组的中位数
    ubuntu16.04下安装g2o
    小米 各版本手机系统包 线刷包 卡刷包
  • 原文地址:https://www.cnblogs.com/shewill/p/12542300.html
Copyright © 2011-2022 走看看