# ['1', '2', '3'].map(parseInt)

真正的答案是[1, NaN, NaN],为什么呢?

我们分析一下,执行['1', '2', '3'].map(parseInt)相当于执行:

['1', '2', '3'].map((value,index)=>{
  // parseInt('1', 0) //radix为0时,且string参数不以“0x”和“0”开头时,按照10为基数处理。这个时候返回1
  // parseInt('2', 1) //基数为1(1进制)表示的数中,最大值小于2,所以无法解析,返回NaN
  // parseInt('3', 2) //基数为2(2进制)表示的数中,最大值小于3,所以无法解析,返回NaN
  return parseInt(value,index)
})

parseInt(string, radix)接收两个参数,第一个表示被处理的值(字符串),第二个表示为解析时的基数。map函数返回的是一个数组,所以最后结果为[1, NaN, NaN]