zoukankan      html  css  js  c++  java
  • typeof、类型转换

    1、typeof

      typeof两种写法:typeof  num;typeof(num)

      typeof(111)       // "number"

      typeof(undefined)    // "undefined"

      typeof('aaaa')           // "string"

      typeof(true)              // "boolean"

      typeof(null)              // "object"

      typeof([1,2,3])          // "array"

      typeof({age:18})       // "object"

      typeof(function  fun(){})  // "function"

    2、类型转换

      显式类型转换

      (1)Number(mix)

        Number('111')  // 111

        Number(true)  // 1

        Number(false)  // 0

        Number(null)  // 0

        Number('')  // 0

        Number('   ')  // 0

        Number( )  // 0

        Number(undefined)  // NaN

        Number('abc')  // NaN

        Number('-111')  // -111

      (2)parseInt(string, radix)、parseFloat(string)

        parseInt(string, radix):将字符串转成数字,如果不是字符串,会先将其转成字符串;第二个参数表示将对应进制的数转成十进制

        parseInt(111)  // 1

        parseInt(true)  // NaN

        parseInt(false)  // NaN

        parseInt(null)  // NaN

        parseInt('123')  // 123

        parseInt('123.9')  // 123

        parseInt('abc')  // NaN

        parseInt('')  // NaN

        parseInt('+123.9')  // 123

        parseInt('-123.9')  // -123

        parseInt('10', 2)  // 2

        parseInt('12abc')  // 12

        parseFloat(123.45)  // 123.45

        parseFloat(123)  // 123

        parseFloat('123.4sdf')  // 123.4

      (3)String(mix)

        String(111)  // '111'

        String(true)  // 'true'

        String(NaN)  // 'NaN'

        String(undefined)  // 'undefined'

        String(null)  // 'null'

     

      (4)Boolean(mix)

        Boolean('')  // false

        Boolean(' ')  // true

        Boolean('123')  // true

      (5)toString(radix)

        undefined和null不能用toString方法,否则会报错

        (111).toString()  // '111'

        (2).toString(2)  // '10'

     

      隐式类型转换

      (1)isNaN()

        内部通过Number()方法进行转换,然后和NaN比较

        isNaN(NaN)  // true

        isNaN(123)  // false

        isNaN(undefined)  // false

        isNaN('abc')  // true

      (2)++、--、+(正号)、-(负号)

        在运算前内部调用Number( )方法

        var  a  =  '123';

        a ++;

        console.log(a)  // 124

        +  '456'  // 456

        -  '456'  // -456

      (3)+(加号)

        当加号两边只要有一侧是字符串,就会调用String( )方法

        var  a  =  'b'  +  2;  // b2

      (4)-、*、/、%

        运算符两边调用Number( )方法

        var  a  =  '2'  *  3;  // 6

        var  b  =  'a'  -  4;  // NaN

      (5)==、!=

        1 == '1'  // true

        1  !=  '1'  // false

        undefined  == 0  // false

        undefined  > 0  // false

        undefined  < 0  // false

        null  > 0  // false

        null  < 0  // false

        null  == 0  // false

        undefined  == null  // true

        NaN  ==  NaN  // false

        NaN  !=  NaN  // true

  • 相关阅读:
    二分+树状数组/线段树(区间更新) HDOJ 4339 Query
    数论(GCD) HDOJ 4320 Arcane Numbers 1
    拓扑排序/DFS HDOJ 4324 Triangle LOVE
    离散化+线段树/二分查找/尺取法 HDOJ 4325 Flowers
    KMP HDOJ 4300 Clairewd's message
    高精度模板
    前缀+排序 HDOJ 4311 Meeting point-1
    Kruskal HDOJ 4313 Matrix
    最短路(Dijkstra) HDOJ 4318 Power transmission
    (转)C语言运算符优先级 详细列表
  • 原文地址:https://www.cnblogs.com/cuishuangshuang/p/13228137.html
Copyright © 2011-2022 走看看