今儿碰到个题目

关于['1','2','3'].map(parsetInt)

最开始以为很简单,就是将数组中的所有元素进行向Int的转化,然而机智的我转念一想事情不会那么简单。

然后偷偷摸摸的输入了下,抬头看看周围没有人点了下回车

关于['1','2','3'].map(parsetInt)理解

后来了解到,原因是map函数的参数所致

关于['1','2','3'].map(parsetInt)理解

我们的['1','2','3'].map(parseInt)

按照array.map函数的可选、必选参数对该函数按照情形,按照顺序是这样解析的

①parseInt(‘1’,0,[1,2,3]) 

   此处1为currentValue,0为其在数组中的索引,[1,2,3]为当前数组对象

   然而parseInt的函数

关于['1','2','3'].map(parsetInt)理解

 即说明parseInt只接收两个参数,那么最后表达应该为如下

  parseInt(‘1’,0,[1,2,3])   =>   parseInt(‘1’,0)

已知此处‘1’为要被解析的字符串,radix为0,即以十进制进行转换结果为

parseInt(‘1’,0)  =>  1

②同理 

parseInt(‘2’,1,[1,2,3])   =>  parseInt(‘2’,1)  => NaN

此处‘2’为要被解析的字符串,radix为1,即将2以1进制进行转换结果为无法转化结果为NaN

③parseInt(‘3’, 2,[1,2,3])   =>  parseInt(‘3’,2)  => NaN

此处‘3’为要被解析的字符串,radix为2,即将3以2进制进行转换,而3不是一个二进制数(二进制由0、1组成),无法转换结果为NaN

结果即 1,NaN,NaN

相关文章: