Discuss / JavaScript / 关于最后一题输出结果为[1,NaN,NaN]的分析

关于最后一题输出结果为[1,NaN,NaN]的分析

Topic source

w_玉芳

#1 Created at ... [Delete] [Delete and Lock User]

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]。

神本贪婪

#2 Created at ... [Delete] [Delete and Lock User]

大神,冒昧问个额外的问题,36进制,9后面也是用字母表示吗,算起来,36那就直接到z了,那是不是就没有更大的进制了

廖雪峰

#3 Created at ... [Delete] [Delete and Lock User]

只是没有对应的英文字母来表示36进制之上的,进制本身可以是任意的


  • 1

Reply