前端面试题之 [‘1‘, ‘2‘, ‘3‘].map(parseInt) 的返回结果是什么?

本文详细解释了JavaScript中parseInt函数的使用方法及其特殊规则,并通过一个具体的编程实例展示了当parseInt函数与数组的map方法结合使用时可能出现的意料之外的结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

乍看之下结果好像是[1,2,3],但既然是面试题,就不会这么简单,我们下面来分析一下。

parseInt函数

我们先来了解一下parseInt函数的作用。

函数作用:parseInt函数解析一个字符串参数,并返回一个指定基数(几进制)的整数

语法:parseInt(string, radix)

参数解析:第一参数是一个字符串;第二个参数radix的范围是2~36,表示2进制到36进制。

第二个参数 radix的规则:

  1. 如果省略该参数或其值为 0,则默认以10进制来返回结果
  2. 如果该参数以 “0x” 或 “0X” 开头,将以 16 进制来返回结果
  3. 如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。

[‘1’, ‘2’, ‘3’].map(parseInt)

了解了parseInt函数的基本特性之后,我们分析题目,其实题目等价于如下代码:

['1','2','3'].map((item, index) => {
	return parseInt(item, index)
});

所以上述代码的执行步骤为:

parseInt('1',0);//1
parseInt('2',1);//NaN
parseInt('3',2);//NaN

上述代码的输出结果:第一行参照规则1,第二行参照规则3,第三行输出NaN是因为3不是二进制(二进制只有0和1)

所以最终的返回结果为[1,NaN,NaN]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值