首页 > 代码库 > 理解Js的parseInt(转)
理解Js的parseInt(转)
parseInt() 方法首先查看位置 0 处的字符,判断它是否是个有效数字;如果不是,该方法将返回 NaN,不再继续执行其他操作。但如果该字符是有效数字,该方法将查看位置 1 处的字符,进行同样的测试。这一过程将持续到发现非有效数字的字符为止,此时 parseInt() 将把该字符之前的字符串转换成数字。
一、语法
parseInt(string, radix)
参数 | 描述 |
string | 必需。要被解析的字符串。 |
radix |
可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间 或者为 0。 如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。 如果该参数小于2 且不为0 ,或者大于 36,则 parseInt() 将返回 NaN。 |
二、"string" 参数应用的详细规则 (以 10进制为例)
1、如果都是字母, 返回:NaN
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(转)