['1', '2', '3'].map(parseInt) what & why ?

这个题最开始呢自己并不清楚map()函数和parseInt的详细用法.

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/parseInt
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/map

已经贴上了Arry.prototype.map()和parseInt()的MDN地址.

语法

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

/*@param {String} string 要转成整形的字符串,如果不是字符串,会自动转成字符串
*@param {String} radix 当前提供的数字型字符串的基数(进制) 取值[2-36]
*/
parseInt(string, radix);

看了之后自己一直懵逼的是:['1', '2', '3'].map(parseInt)等价于[parseInt('1',0), parseInt('2',1), parseInt('3',2)]这里是怎么回事.
parseInt()函数的两个参数是如何得到的?

后面理理:map一定会向回调函数传入三个参数,至于回调函数用不用得上就是另一回事了;这里parseInt()接收两个参数:当前值和索引
所以 ['1', '2', '3'].map(parseInt)[parseInt('1',0), parseInt('2',1), parseInt('3',2)]是等价的
这里答案: [0,NaN,NaN]

原文地址:https://www.cnblogs.com/whitewen/p/11359138.html