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

时间:2022-01-13 20:25:08

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