JavaScript之parseInt()方法

parseInt(string, radix):用于解析一个字符串并返回指定基数的十进制整数或者NaN

string参数为被解析的值,如果该值不是一个字符串,则会隐式的使用toString()方法转化为字符串,字符串首尾的空格会被忽略,如果该值不能转化为数字或者第一个非空字符不能转化为数字则返回NaN

radix可选参数,值为2~36之间的整数,解析的基数,例如2为二进制数,如果省略该参数或者该值为0,则会以十进制解析,如果该值小于2或者大于36,则会返回NaN。如果省略该参数,string以0x或0X开头,以16进制解析,string以0开头,以八进制或十六进制解析,以1~9开头,以10进制解析

parseInt解析到的字符不是指定radix中的数字时,它会忽略该字符及其之后的字符,并返回已解析的十进制

eg:

parseInt(3.3) => 3; parseInt(3, 0) => 3;

parseInt(3, 1) => NaN => 因为radix不能小于2

parseInt('31', 2) => NaN => 因为在二进制中大于1的数是非法数

parseInt('0xF', 16) => 15 => 十六进制中A=10 ~ F=15

parseInt('F', 16) => 15; parseInt('-F', 16) => -15

parseInt('0e0', 16) => 14*16 = 224

parseInt('123', 5) => 38 => 1*5^2+2*5^1+3*5^1

parseInt(021, 8) => 15 => 021.toString() = 17;相当于parseInt('17', 8)=15

parseInt('abc') => NaN

parseInt(4.7*1e18, 10) => 4

parseInt(0.0000000000444, 10) => 4

 

['1', '2', '3'].map(parseInt) => [1, NaN, NaN]
map方法的callback(currentVal, index, array)相当于
[parseInt('1', 0), parseInt('2', 1), parseInt('3', 2)] => [1, NaN, NaN]

posted @ 2021-05-15 17:00  IT小猿人  阅读(1488)  评论(0编辑  收藏  举报