为什么 ["1", "2", "3"].map(parseInt) 返回 [1,NaN,NaN]?

parseInt()函数:

parseInt()可以解析一个字符串,并返回一个整数

parseInt(string, radix)

参数解释:

  1. string:要被解析的字符串。
  2. radix:可选。表示要解析的数字的基数,该值介于2~36之间。①如果省略该参数或其值为0,则数字将以10为基础; ②如果它以0x或0X开头,将以16为基数; ③如果该参数小于2或大于36,则parseInt()将返回NaN。
map()方法:

返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

array.map(function(currentValue, index, arr){}, thisValue)

参数说明:

  1. function(currentValue, index, arr):数组中每个元素都会执行这个函数。
    1.1.currentValue:当前元素的值
    1.2.index:可选。当前元素的索引值
    1.3.arr:可选。当前元素属于的数组对象
  2. thisValue:可选。对象作为该执行回调时使用,传递给函数,用作this的值,如果省略了thisValue,this的值为undefined
[1,2,3].map(parseInt)分析:

map方法给parseInt传入了三个参数,其中前两个参数作为parseInt函数的参数,
1 –> parseInt(1, 0) ⇒ 满足①,十进制:1
2 –> parseInt(2, 1) ⇒ 满足③,NaN
3 –> parseInt(3, 2) ⇒ 二进制,但是3没有二进制值,所以返回NaN

猜你喜欢

转载自blog.csdn.net/csm0912/article/details/81477513
今日推荐