['1','2','3'].map(parseInt) 输出什么,为什么
首先打印下结果
先看下map函数
- map是数组的一个方法,有3个参数,第1个参数是数组中的每一个元素,第2个参数是索引,第3个参数是原数组。map方法会返回一个新数组。
let arr = [1,2,3];
arr.map((item,index,data) => item+1) // [2,3,4]
再看下parsetInt
- parsetInt是解析字符串,将字符串转为数字。parsetInt有2个参数。第1个参数是要解析的字符串,第2个参数是基数(几进制)。
let str = '10'
console.log(parsetInt(str,2)) // 2,以2进制解析
回到题目
['1','2','3'].map(parseInt) 等价于
parseInt('1',0) // 0进制,最大是1,返回1
parseInt('2',1) // 1进制,表示的数中,最大值小于2,所以无法解析,返回NaN
parseInt('3',2) // 2进制,最大值是2,所以无法解析,返回NaN