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

时间:2022-09-07 15:48:47

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