zoukankan      html  css  js  c++  java
  • 系统学习(javascript)_基础(数据类型之间的转换)

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


    强制转换:

      利用js提供的函数parseInt(),parseFloat(),Number(),Boolean()进行数据转换,前两个分别是对数据进行解析转换,前者是整数,后者是浮点数。解析的原则是从前往后进行解析,尽其所能。若存在有能识别的数字就解析,如果第一位不是数字则返回NaN。Number则是对整体进行判断,是数字返回数字,否则返回NaN。Boolean()则是内容强制转换为布尔true或者false。

    ParseInt():

      parseInt(123);//123

      parseInt(+123);//123

      parseInt(++123);//NaN

      parseInt(-123);//-123

      parseInt(--123);//NaN

      parseInt(“12.3元”);//12

      parseInt("abc");//NaN

      parseInt([1,2]);//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");//10

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

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

            parseInt("010",   10); //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():

            Number("123");//123

            Number("+123");//123

            Number("12.3");//12.3

            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()则是传入的所有数据类型转换为字符串。

    String()和toString()方法的区别

    typeof String(null)//String

    typeof String(undefined)//String

    隐式类型转换:

      隐式类型转换和java中大不相同,在js中数据类型不严格,没有浮点型和整型。

      隐式类型转换指的是字符串和数值类型之间的转换,在进行字符串和数字之间进行减乘除取模运算或者进行比较运算时,自动把字符串转换为数字,转换数字的默认方法是调用Number()。进行加法运算则是将数字看成字符串进行拼接

    var x = "123";

    var y = 121;

    console.log(x+y);//"123121;

    console.log(x-y);//2

    console.log(x*y);//14883

    console.log(x/y);//1.016528256198346

    console.log(x%y);//2

    console.log(x>y);//true

    console.log(x==y);//false

    console.log("123a">y);//false诡异

    javascript只是一种弱类型的脚本语言,语法相对于java等高级编程语言来说不够严格,所以对于它的数据类型之间的转换很容易混淆。  

    参考文章:https://www.cnblogs.com/liqiangchn/p/6915072.html

  • 相关阅读:
    MYSQL一对多,两表查询合并数据
    bootstrap瀑布流代码
    os mac apache+php+mysql环境配置
    centos 6.5 服务器安装 (LNMP ntfs文件支持 PHP-RPM CHROOT沙盒)
    在linux下将当前目录文件全部小写含目录名
    Javascript知识汇总------js中容易被忽略的细节(持续更新)
    Javascript知识汇总------js数据类型隐式转换
    下次要写约瑟夫和并查集
    --wrong answer
    --最小生成树
  • 原文地址:https://www.cnblogs.com/wush-1215/p/10558954.html
Copyright © 2011-2022 走看看