解析 [1, 2, 3].map(parseInt)【JS面试题】

有如下面试题,打印输出的结果.

1
const res = [1, 2, 3].map(parseInt);

其实正确的输出结果是[1,NaN,NaN],这道题目主要是考察 parseInt 的第二个参数.

实际上并不是转化为如下代码:

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

parseInt 其实有两个参数,第一个是元素,第二个是基数(为几进制数) parseInt(元素,基数)

控制台打印

完整形式其实应该是如下:

1
2
3
const res3 = [1,2,3].map((item,index)=>{
return parseInt(item,index);
})
  • parseInt(1,0) -> 1
  • parseInt(2,1) -> NaN
  • parseInt(3,2) -> NaN

B 站视频讲解:

视频地址

https://www.bilibili.com/video/BV1rQ4y1S7hR/?spm_id_from=333.999.top_right_bar_window_history.content.click&vd_source=52f25fe6a2d8e15febcda4b70b5ff9d2