[‘1‘, ‘2‘, ‘3‘].map(parseInt)的结果

发布时间:2024年01月23日

[‘1’, ‘2’, ‘3’].map(parseInt) what & why ? 执行结果

第一眼看到这个题目的时候,我们脑海中首先跳出的答案一般都是 [1, 2, 3],但是真正的答案是[1, NaN, NaN]。在这里插入图片描述

首先让我们回顾一下,map 函数的第一个参数 callback。这个 callback 一共可以接收三个参数,其中第一个参数代表当前被处理的元素,而第二个参数代表该元素的索引。

arr.map(callback: (value: T, index: number, array: T[]) => U, thisArg?:any);

而 parseInt 则是用来解析字符串的,使字符串成为指定基数的整数。接收两个参数,第一个表示被处理的值(字符串),第二个表示为解析时的基数。

parseInt(string, radix)了解这两个函数后,我们可以模拟一下运行情况

// radix 为 0 时,且 string 参数不以“0x”和“0”开头时,按照 10 为基数处理。这个时候返回 1
parseInt('1', 0) 
// 基数为 1(1 进制)表示的数中,最大值小于 2,所以无法解析,返回 NaN
parseInt('2', 1)
// 基数为 2(2 进制)表示的数中,最大值小于 3,所以无法解析,返回 NaN。
parseInt('3', 2) 
文章来源:https://blog.csdn.net/DHLSP15/article/details/135775665
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。