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

这道题大家应该经常会碰到,我们打印一下结果
在这里插入图片描述
想要彻底弄懂同类型的题,我们必须先弄懂map,parseInt

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

参数解析:

  • item:第一个参数,数组中正在处理的当前元素(必选)
  • index:第二个参数,数组中正在处理的当前元素的索引(可选)
  • thisArr:第三个参数,map 方法被调用的数组(可选)
  • thisValue:对象作为该执行回调时使用,传递给函数,用作 “this” 的值(可选)
parseInt
// radix进制的由数字组成的字符串 string 转换为 10 进制的整数
parseInt(string, radix)

参数解析:

  • string:要被解析的字符串(必选)
  • radix:要解析的数字的基数。该值介于 2 ~ 36 之间(可选)

radix详解:

  • 如果radix值为 0,则数字将以 10 为基础来解析
  • 如果radix小于 2 (!==0)或者大于 36,则 parseInt() 将返回 NaN
  • 没有设置该参数时,如果string以 “0x” 或 “0X” 开头,将以 16 为基数
  • 没有设置该参数时,如果 string 以 0 开头,转换为8进制或十进制
  • 没有设置该参数时,如果 string 以 1 ~ 9 开头,将以 10 为基数
  • 如果string超出radix的表示范围,则返回NaN

实践

['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 ===> 只有字符串中的第一组数字会被返回
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值