['1', '2', '3'].map(parseInt) 输出什么? map()执行时会默认传入3个参数,parseInt会传入两个参数,题目中的写法是默认将map的前两个参数传给了parseInt
let arr = ['1','2','3'].map(function(item, key, arr){
parseInt("1", 0) //0为10进制
parseInt("2", 1) //radix中没有1进制一说
parseInt("3", 2) //2进制中超过1的值不存在(‘10’转化成2进制是2,‘11’转化成2进制是3)
});
//[1, NaN, NaN]
总结:map()传入三个参数(item.index,arr){...}
parseInt传入两个参数(string, radix),如果第一个字符不是数值、加减号,则会立即返回NaN,空字符也是NaN(和Number()返回0不同),如果第一个字符是数值、加减号,则会依次检查每个字符直到末尾,不是数字的直接忽略(22.5会转换成22,因为小数点不是整数字符、'102djos323'转换成102)
radix表示进制数,数字2-36之间的整型。默认使用10,表示10进制。parseInt的radix在2-36之外会返回NaN