zoukankan      html  css  js  c++  java
  • js数据类型转换

     js中数据类型转换一般分为两种,即强制类型转换和隐式类型转换(利用js弱变量类型转换)

    强制转换:

            利用js提供的函数parseInt() ,parseFloat() ,Number(),Boolean()进行数据转换,顾名思义,前两个分别是对数据进行解析转换,前者是整数,后者是浮点数。他们解析的原则是从前往后进行解析,尽其所能。若存在有能识别的数字就解析,如果第一位就不是数字则返回NaN.Number则是对整体进行判断,是数字返回数字,否则NaN.Boolean()则是对是否存在和真假进行判断进行判断。

    ParseInt()

            parseInt("123");//123

            parseInt("+123");//123

            parseInt("-123");//123

            parseInt("12.3")//12

            parseInt("abc");//NaN

             parseInt([1,2])//1

             parseInt([1,2,4])//1

              parseInt("  ");//NaN

    该方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的,所以要解析十六进制的值,对于含有前导的数则直接进行解析需如下调用:

            parseInt("AA",16);//170

            parseInt("10",2);//2

            parseInt("10",8);//8

            parseInt("10",10);//10

            //含有前导

            parseInt("0xAA")//170        

            //如果二进制数包含前导0,那么最好采用基数2,不然默认以十进制解析

            parseInt("010");   //returns   10 

            parseInt("010",2);//2         parseInt("010",   8);   //returns   8          parseInt("010",   10);   //returns   10 

            parseInt(null)//NaN

    ParseFloat():

            parseFloat("123");//123

            parseFloat("-123");//123

             parseFloat("+123");//123

            parseFloat("12.34");//12.34

             parseFloat("12.35")//12.35

            parseFloat("12.23.122");//12.23

            parseFloat("av");//NaN

            parseFloat("0xAA");//0

            parseFloat("0110");//110

            parseFloat([1]);//1

            parseFloat([2,3]);//2

            parseFloat([]);//NaN

            parseFloat(null)//NaN

       

    Number():

            alert(123);//123

            Number("123");//123

            Number("+123");//123

            Number("12.3");//12.3

            alert(12.3);//false

            Number(true);//1

            Number("12.3.4");//NaN

            Number(" ");//0

            Number("abc");//NaN

            Number([]);//0

            Number([1]);//1

            Number([1,2]);//NaN

            Number(new Object());//NaN

            Number(null);//0

    Boolean():他不会对引号里面的数字进行自动进行转换。

            Boolean(1) ;//true

            Boolean(0);//false

            Boolean("1");//true

            Boolean("0");//true

            Boolean("abc");//true

            Boolean('');//false

            Boolean('   ');//true

            Boolean([])//true

            Boolean([1])//true

            Boolean(null)//false

    String()则是传入的所有数据类型转换为字符串。

    //toString()方法的区别是

    typeof String(null)//String

    typeof String(undefined)//String

     隐式类型转换:

        隐式类型转换和java中大不相同,在js中数据类型不严格,没有浮点和整型,这里的隐式类型转换指的是字符串和数值类型之间的转换,在进行字符串和数字之间进行减乘除取模运算或者进行比较运算时,他会自动把字符串转换为数字。转换数字的默认方法是调用Number(),进行加法运算则是将数字看成字符串进行拼接. var x = "123";

    var y = 121;

    alert(x+y);//"123121;

    alert(x-y);//2

    alert(x*y);//14883

    alert(x/y);//1.016528256198346

    alert(x%y);//2

    alert(x>y);//true

    alert(x==y);//false

    alert("123a">y);//false诡异

  • 相关阅读:
    font-weight:bolder与设置数值的区别
    纯CSS3打造圆形菜单
    CSS Specificity
    控制页面内跳转
    解决Python操作MySQL中文乱码的问题
    字体图标font-awesome
    linux下安装使用MySQL 以及 python mysqldb 遇到的问题
    CocosCreator游戏开发(二)SocketIO简易教程
    CocosCreator游戏开发---菜鸟学习之路(一)资料整理
    2017已经接近尾声,然而我却什么都没干成
  • 原文地址:https://www.cnblogs.com/wangyawei/p/9076184.html
Copyright © 2011-2022 走看看