[‘1‘,‘2‘,‘3‘].map(parseInt)详解

1、首先我们需要知道:

console.log([1,2,3].map(parseInt));//[1,NaN,NaN]

那么为啥呢?

2、首先了解下map()函数:

对数组的每个元素调用定义的回调函数并返回包含结果的数组

[1,2,3].map(function(a,b,c) {//function 执行时会传入三个参数
    //a为当前被传递的元素
    console.log(a);//1,2,3
    //b为当前被传递元素的索引
    console.log(b);//0,1,2
    //c为调用map方法的数组
    console.log(c);//[1,2,3]
})

3、其次了解下parsent()函数:

	parseInt(string,radix)解析一个字符串并返回指定基数的十进制整数,radix是2-36之间的整数,表示被解析的字符串的基数
string : 
	要被解析的值。如果参数不是一个字符串,则将其转换为字符串。字符串开头的空白符将会被忽略
radix(可选):
	从2到36,表示字符串的基数。类如,指定16表示被解析值是十六进制数。请注意,10不是默认值
返回值:
	从给定的字符串中解析出一个**整数**,但是当radix小于2或者大于36,或者第一个非空格字符不能转换为数字,返回NaN

4、最后我们再看代码

([1,2,3].map(parseInt));//[1,NaN,NaN]
//相当于:
parseInt('1',0)       //1
parseInt('2',1)       //NaN
parseInt('3',2)     //NaN

你可能感兴趣的:(javascript)