[‘1‘,‘2‘,‘3‘].map(parseInt) 应该输出什么?

['1','2','3'].map(parseInt) 应该输出什么? 答案是 输出:[1, NaN, NaN]。

大家或许会问为什么?

我想说的是map函数的第一个参数callback:var new_array = arr.map(function callback(currentValue[, index[, array]]) { // Return element for new_array }[, thisArg])这个callback一共可以接收三个参数,其中第一个参数代表当前被处理的元素,而第二个参数代表该元素的索引。

1.parseInt则是用来解析字符串的,使字符串成为指定基数的整数。parseInt(string, num)接收两个参数,第一个表示被处理的值(字符串),第二个表示为解析时的基数。

2.parseInt('1', 0) //num为0时,且string参数不以“0x”和“0”开头时,按照10为基数处理。这个时候返回1

parseInt('2', 1) //基数为1(1进制)表示的数中,最大值小于2,所以无法解析,返回NaN

parseInt('3', 2) //基数为2(2进制)表示的数中,最大值小于3,所以无法解析,返回NaN

map函数返回的是一个数组,所以最后结果为[1, NaN, NaN]

你可能感兴趣的:(JavaScript小知识点,javascript)