• javascript中的类型转换(进制转换|位运算)


    1:parseInt(string) : 这个函数的功能是从string的开头开始解析,返回一个整数

    parseInt("123hua");  //输出  123
    parseInt("123");     //输出  123
    parseInt("12.3");    //输出  12
    parseInt("hua");     //输出  Nan

    2:另外parseInt()方法还有其他模式,就是可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数

    parseInt("10", 16);   //输出  16
    parseInt("10", 2);    //输出  2
    parseInt("10s", 2);    //输出  2
    parseInt("10", 8);    //输出  8
    parseInt("10", 10);   //输出  10
    parseInt("0x10");     //输出  16 0x十六进制的表示

    3.parseFloat():这个函数与parseInt()方法的处理方式相似。

    parseFloat("123hua");  //输出  123
    parseFloat("123");     //输出  123
    parseFloat("12.3");    //输出  12.3
    parseFloat("hua");     //输出  Nan

    4.Number():强制类型转换,与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。

    Number(false)    //输出  0
    Number(true)     //输出  1
    Number(undefined) //输出  NaN
    Number(null)      //输出  0
    Number("1.2")    //输出  1.2
    Number("12 ")    //输出  12
    Number("1.2.3 ") //输出  NaN
    Number(new Object()) //输出  NaN

    5:Number 类型的 toString() 方法比较特殊,它有两种模式,即默认模式和基模式。
    采用默认模式,toString() 方法只是用相应的字符串输出数字值(无论是整数、浮点数还是科学计数法)

    var iNum = 10;
    alert(iNum.toString(2));    //输出 "1010"
    alert(iNum.toString(8));    //输出 "12"
    alert(iNum.toString(16));    //输出 "A"
    (12).toString();            //输出 "12"
    (12).toString(2);           //输出 "1100"
    "12".toString(2);           //输出 "12"

    6:Boolean 类型的 toString() 方法只是输出 "true" 或 "false"

    var bFound = false;
    alert(bFound.toString());    //输出 "false"

    7:位运算符是在数字底层(即表示数字的 32 个数位)进行操作的。
    位运算 NOT 由否定号(~)表示

    //位运算 NOT 由否定号(~)表示
    var iNum1 = 25;        //25 等于 00000000000000000000000000011001
    var iNum2 = ~iNum1;     //转换为 11111111111111111111111111100110
    alert(iNum2);        //输出 "-26"
    //位运算 NOT 实质上是对数字求负,然后减 1,因此 25 变 -26
    var iNum1 = 25;
    var iNum2 = -iNum1 - 1;
    alert(iNum2);    //输出 -26

    位运算 AND 由和号(&)表示,直接对数字的二进制形式进行运算,都是1为1,否则为0

    var iNum1 = 25;        //25 等于 0000 0000 0000 0000 0000 0000 0001 1001
    var iNum2 = 3;         //3  等于 0000 0000 0000 0000 0000 0000 0000 0011
    alert(iNum1 & iNum2);//输出     //1 等于 0000 0000 0000 0000 0000 0000 0000 0001

    位运算 OR 由符号(|)表示,也是直接对数字的二进制形式进行运算,都是0为0,否则为1

    var iNum1 = 25;        //25 等于 0000 0000 0000 0000 0000 0000 0001 1001
    var iNum2 = 3;         //3  等于 0000 0000 0000 0000 0000 0000 0000 0011
    alert(iNum1 | iNum2);//输出     //27 等于 0000 0000 0000 0000 0000 0000 0001 1011

    位运算 XOR 由符号(^)表示,当然,也是直接对二进制形式进行运算,不同为1,相同为0

    var iNum1 = 25;        //25 等于 0000 0000 0000 0000 0000 0000 0001 1001
    var iNum2 = 3;         //3  等于 0000 0000 0000 0000 0000 0000 0000 0011
    alert(iNum1 ^ iNum2);//输出     //26 等于 0000 0000 0000 0000 0000 0000 0001 1010

    左移运算由两个小于号表示(<<)。它把数字中的所有数位向左移动指定的数量。

    var iNum1 = 2;            //等于二进制 10
    var iNum2 = iNum1 << 5;    //等于二进制 1000000 十进制 64
  • 相关阅读:
    动手实现 Redux(六):Redux 总结
    动手实现 Redux(五):不要问为什么的 reducer
    动手实现 Redux(四):共享结构的对象提高性能
    动手实现 Redux(三):纯函数(Pure Function)简介
    动手实现 Redux(二):抽离 store 和监控数据变化
    动手实现 Redux(一):优雅地修改共享状态
    React.js 的 context
    高阶组件(Higher-Order Components)
    实战分析:评论功能(六)
    实战分析:评论功能(五)
  • 原文地址:https://www.cnblogs.com/zhao123/p/5801109.html
Copyright © 2020-2023  润新知