前言
本系列主要整理前端面试中需要掌握的知识点。本节介绍[‘1’,‘2’,‘3’].map(parseInt) 输出什么?为什么?
文章目录
一、背景知识
早在2013年,加里·伯恩哈德就在微博上发布了一段代码:
['10','10','10','10','10'].map(parseInt); //[10,NaN,2,3,4]
这是为什么呢?这还要从parseInt 和 map两个方法说起。
1. parseInt()方法
(1)语法:parseInt(string [, radix])
;
(2)定义:parseInt() 函数可解析一个字符串,并返回一个整数。
(3)用法:当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。当忽略参数 radix , JavaScript 默认数字的基数如下:
- 如果 string 以 “0x” 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。
- 如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。
- 如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。
(4)举例:
console.log(parseInt('10')); //10
console.log