['1','2','3'].map(parseInt) 返回的是什么?

返回的是:[1,NaN,NaN]

首先我们先分析一下  parseInt  函数:

parseInt()函数解析一个字符串参数,并返回指定基数的整数(数学系统中的基数)。

它可以有两个参数,用法:parseInt(string, radix)

string:要解析的值。如果其不是字符串,则将其转换为字符串(使用toString抽象操作)。字符串开头的空白符将会被忽略。

radix:可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间,默认为10

返回值:返回解析后的整数值。 如果被解析参数的第一个字符无法被转化成数值类型,则返回 NaN

然后我们再来分析一下数组的 map 方法:

map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果

用法:

let array = arr.map(function callback(currentValue, index, array) { 
    // Return element for new_array 
}[, thisArg])

参数:

callback :生成新数组元素的函数,使用三个参数:
  currentValue:callback的第一个参数,数组中正在处理的当前元素
  index:callback的第二个参数,数组正在处理的当前元素的索引值
  array:callback的第三个参数,当前数组
返回值:一个新数组,每个元素都是回调函数的结果。
通过上面的说明,我们可以分析得出,['1','2','3'].map(parseInt) 都做了什么事情了:

parseInt('1',0); // 1
parseInt('2',1); // NaN
parseInt('3',2); // NaN
所以最后返回的就是 [1,NaN,NaN]



  
原文地址:https://www.cnblogs.com/afeihome/p/7245963.html