首页 > 代码库 > 理解Js的parseInt(转)

理解Js的parseInt(转)

parseInt() 方法首先查看位置 0 处的字符,判断它是否是个有效数字;如果不是,该方法将返回 NaN,不再继续执行其他操作。但如果该字符是有效数字,该方法将查看位置 1 处的字符,进行同样的测试。这一过程将持续到发现非有效数字的字符为止,此时 parseInt() 将把该字符之前的字符串转换成数字。

 

一、语法

parseInt(stringradix)

参数 描述
string 必需。要被解析的字符串。
radix

可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间 或者为 0。

如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。

如果该参数小于2 且不为0 ,或者大于 36,则 parseInt() 将返回 NaN。

 

二、"string" 参数应用的详细规则  (以 10进制为例

 

1、如果都是字母, 返回:NaN

parseInt("abc", 10)  //返回 NaN
 
 
2、如果都是数字,则返回整数

parseInt("123", 10)   //返回 123

 

3、如果字母和数字都存在

(1)、以数字开头,则取截止到第一个字母出现之前的所有数字进行转换

parseInt("12x2bc", 10)   // 返回:12

(2)、如果参数“string”,以字母开头,直接返回NaN (10进制中字母不是一个有效的的表示)

parseInt("df2bc", 10)  //返回 NaN

 

三、使用 parseInt() 来解析不同的字符串实例

parseInt("10");            //返回 10
技术分享
parseInt("19",10);        //返回 19 (10+9)
技术分享
parseInt("11",2);        //返回 3 (2+1)
技术分享
parseInt("17",8);        //返回 15 (8+7)
技术分享
parseInt("1f",16);        //返回 31 (16+15)
技术分享
parseInt("010");        //未定:返回 10 或 8

无聊个人注明怎么计算进制~~~~~~啦啦啦啦~~~~~
这里我用(n)[2] 表示2进制 2进制用2代表满位,如同十进制的10为满位。
(17)[8] ---> (1111)[2] ---> (2的3次方 + 2的2次方 + 2的1次方 + 2的0次方)[10] = (8+4+2+1)[10] = (15)[10]

注意16进制后面10用A代替1A==10+16=26------A=16 1=10
            A1==10*16+1=161

四、js中使用parseint需要注意的地方

 

1、在没有指定radix或者radix为0的情况下,parseInt会按十进制进行转换。然而,如果string的值以“0x”开头,parseInt会按十六进制进行转换;

2、parseInt 会先调用 toString 方法,看如下几个parseInt的返回值

alert(0.000001);  // 弹出 0.000001
alert(0.0000001);  // 弹出1e-7

parseInt(0.000001)   // 返回0

parseInt(0.0000001)  // 返回1

parseInt(‘0.000001‘)   // 返回0
parseInt(‘0.0000001‘)  // 返回0

 

巧用:parseInt(x.style.marginLeft, 10);这个去掉后面的px

 

转:http://www.studyofnet.com/news/941.html

理解Js的parseInt(转)