[“1“, “2“, “3“].map(parseInt) 答案是多少

答案:

[1, NaN, NaN]

因为:

  • parseInt 需要两个参数 (val, radix),其中radix 表示解析时用的基数。
  • map传了 3(element, index, array),对应的 radix 不合法导致解析失败。

解析:

  • 首先来看看完整的表达式
["1", "2", "3"].map(function (item,index,arr){
   return parseInt(item,index);
   /**
   这里相当于return了
   parseInt(1,0)
   parseInt(2,1)
   parseInt(3,2)
   */
})
  • 再来看看parseInt的用法
    • parseInt() 函数可解析一个字符串,并返回一个整数。
    • 当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。
    • 当忽略参数 radix , JavaScript 默认数字的基数如下:
      • 如果 string 以 “0x” 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。
      • 如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。
      • 如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。

以上不难看出,除了第一次index0会将1按照十进制转成1,后面两次是不会按照十进制转换的,所以为NaN

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小码哥・Martin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值