[JS] 关于parseInt的一个小知识:[‘1‘, ‘2‘, ‘3‘].map(parseInt)

本文揭示了笔试中关于parseInt在map方法中的使用误区,指出parseInt期望的参数形式,并解释了为什么只有parseInt('1', 0)能得到正确解析。通过实例和原理分析,帮助读者理解parseInt函数的正确用法。
摘要由CSDN通过智能技术生成

主要是在笔试里看到了,自己试下。。

let a = ['1', '2', '3'].map(parseInt)
console.log(a)

运行结果:
在这里插入图片描述
反正当时是做错了,QAQ


查了一下原理,感谢大佬的博客:
https://blog.csdn.net/The_X_One/article/details/83584019

  • 查文档,map()的语法:
var new_array = arr.map(function callback(currentValue[, index[, array]]) {
    // Return element for new_array
}[, thisArg])
  • callback:产生新数组元素的函数,带有三个参数:currentValue、index和array
  • 这些参数被传到了parseInt里面!
  • 所以,所以例子中的parseInt函数应该是:parseInt(“1”,0,arr)、parseInt(“2”,1,arr)、parseInt(“3”,2,arr)。
  • parseInt的语法:
parseInt (string , radix)
  • parseInt函数根据指定的基数radix生成一个整数值,该值由字符串参数string的内容解释决定。字符串中的前导空格被忽略。如果基数未定义或为0,则默认是10。
  • String是你要转换的字符串,radix是进制。(所以默认是10进制呢)
  • 例如:parseInt(‘1’)、parseInt(‘1’,0)以及parseInt(‘1’,10),结果都是1。
  • 同理:parseInt(‘ABCD’,16)结果为43981,而parseInt(‘ABCD’,8)结果为NaN
    在这里插入图片描述
    由此可见:
  • 由于parseInt中只需要两个参数,parseInt(“1”,0,arr)、parseInt(“2”,1,arr)、parseInt(“3”,2,arr)
  • 实为parseInt(“1”,0)、parseInt(“2”,1)、parseInt(“3”,2)。
  • 只有parseInt(“1”,0)是能够被正确解析的,结果为1。
  • parseInt(“2”,1)、parseInt(“3”,2)不能被正确解析,结果为NaN。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值