['1', '2', '3'].map(parseInt)

2019-11-25  本文已影响0人  励公子

这道题大家应该经常会碰到,我们打印一下结果


控制台打印

想要彻底弄懂同类型的题,我们必须先弄懂map,parseInt

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

参数解析:

parseInt
// radix进制的由数字组成的字符串 string 转换为 10 进制的整数
parseInt(string, radix)

参数解析:

radix详解:

实践

['1', '2', '3'].map(parseInt)
// 等同于
['1', '2', '3'].map((item, index) => {
    return parseInt(item ,index)
})
parseInt('1', 0) // 1 ===> radix值为 0,则数字将以 10 为基础来解析
parseInt('2', 1) // NaN ===> radix小于2,返回NaN
parseInt('3', 2) // NaN ===> string超出radix的表示范围,返回NaN

parseInt('10', 9) // 9 ===> 1 * 9 ^ 1 + 0 * 9 ^ 0 = 9 
parseInt("17", 8) // 15 ===> 1 * 8 ^ 1 + 7 * 8 ^ 0 = 15
parseInt("1f", 16) // 31 ===> 16 + 15
parseInt(' 12x') // 12 ===> 开头和结尾的空格是允许的
parseInt('s90') // NaN ===> 如果字符串的第一个字符不能被转换为数字,那会返回 NaN
parseInt(' 12abc!6') // 12 ===> 只有字符串中的第一组数字会被返回
上一篇下一篇

猜你喜欢

热点阅读