1、parseInt( )带着两个参数:parseInt(string,radix); 后面的radix指的是使用的是什么进制来进行转换。 2、关于radix的值: (1)如果radix省略或者为0,表示按默认进制,也就是十进制转换。 (2)radix值应该是2~36之间的整数,如果超出这个范围,将返回NaN。 3、例子中的 r = arr.map(parseInt); 其实相当于:[ parseInt("1",0) , parseInt("2",1) , parseInt("3",2) ] 4、结果分析为: (1)第一个元素,相当于省略了radix值,按照十进制转换字符串"1",结果为1。 (2)第二个元素,它的radix值为1,不在2~36之间,所以结果返回NaN。(也就是说没有一进制这个进制)。 (3)第三个元素,radix值为2,所以按照二进制进行转换,而字符串"3"中,没有合法的二进制数,所以返回结果NaN。 (4)因此最后的结果是[1,NaN,NaN]。
大神,冒昧问个额外的问题,36进制,9后面也是用字母表示吗,算起来,36那就直接到z了,那是不是就没有更大的进制了
只是没有对应的英文字母来表示36进制之上的,进制本身可以是任意的
Sign in to make a reply
w_玉芳
1、parseInt( )带着两个参数:parseInt(string,radix); 后面的radix指的是使用的是什么进制来进行转换。 2、关于radix的值: (1)如果radix省略或者为0,表示按默认进制,也就是十进制转换。 (2)radix值应该是2~36之间的整数,如果超出这个范围,将返回NaN。 3、例子中的 r = arr.map(parseInt); 其实相当于:[ parseInt("1",0) , parseInt("2",1) , parseInt("3",2) ] 4、结果分析为: (1)第一个元素,相当于省略了radix值,按照十进制转换字符串"1",结果为1。 (2)第二个元素,它的radix值为1,不在2~36之间,所以结果返回NaN。(也就是说没有一进制这个进制)。 (3)第三个元素,radix值为2,所以按照二进制进行转换,而字符串"3"中,没有合法的二进制数,所以返回结果NaN。 (4)因此最后的结果是[1,NaN,NaN]。