每日一题(十三)console.log(['1','2','3'].map(parseInt))

题目描述:写出下面执行结果,并解释原因

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

答案:

[1,NaN,NaN]

知识点:

  • Array.prototype.map,arry.map(function callback(currentValue[, index[, array]]),callback 函数执行规则传入三个参数:currentValue (当前被传递的元素), index (当前被传递的元素的索引), array(调用 map 方法的数组)
  •  
  • parseInt(string, radix)   将一个字符串 string 转换为 radix 进制的整数, radix 为介于2-36 之间的数,例如说指定 10 就等于指定十进位。请注意,通常预设值10 进位!
  • 返回解析后的整数值。 如果被解析参数的第一个字符无法被转化成数值类型,则返回 NaN
  • 注意:radix参数为n 将会把第一个参数看作是一个数的n进制表示,而返回的值则是十进制的。例如:
parseInt('123', 5) // 将'123'看作5进制数,返回十进制数38 => 1*5^2 + 2*5^1 + 3*5^0 = 38

解析:

  • 等同于:['1','2','3'].map((item,index)=>parseInt(item,index))  ===> parseInt('1',0) ,parseInt('2',1),parseInt('3',2)
  • parseInt 的第二个参数 radix 为 0 时,ECMAScript5 将 string 作为十进制数字的字符串解析
  • parseInt 的第二个参数为 1 时,解析结果为 NaN
  • parseInt 的第二个参数 radix 在 2—36 之间时,如果 string 参数的第一个字符(除空白以外),不属于 radix 指定进制下的字符,解析结果为 NaN 。
  • parseInt("3", 2) 执行时,由于 "3" 不属于二进制字符,解析结果为 NaN。

练习:

['0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','22','33','44'].map(parseInt)
//[0, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 10, 12, 14, 16, 18, 20, 22, 36, 57, 80]

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值