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

391 阅读1分钟

理解这道题的本质就在于:

  1. 对map第一个参数callback传参的理解
  2. 对parseInt的传参和转化字符的规则

其实就是考察我们平时对基础知识的API的掌握情况。

Array.prototype.map() 函数

arr.map(function(value, index, array){}, thisArg)

map() 函数是创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。在这里我们需要注意的是map的第一个参数是一个 callback 函数,所以题目使用的 parseInt 就是map的callback函数,所以原题可改写为:

['1','2','3'].map(parseInt(value, index, array))

parseInt()

parseInt 的主要功能是 解析一个字符串,并返回一个整数。 主要接受两个参数 parseInt(string, radix) string 必需,要被解析的字符串。radix可选,表示要解析的数字的基数,该值介于 2 ~ 36 之间,也就是要转换的进制,默认10进制。

parseInt('1', 0, ['1','2','3']))    // 1
parseInt('2', 1, ['1','2','3']))    // NaN
parseInt('3', 2, ['1','2','3']))    // NaN