["1", "2", "3"].map(parseInt) 答案是多少
parseInt(str, radix)
- 解析一个字符串,并返回
10
进制整数 - 第一个参数
str
,即要解析的字符串 - 第二个参数
radix
,基数(进制),范围2-36
,以radix
进制的规则去解析str
字符串。不合法导致解析失败 - 如果没有传
radix
- 当
str
以0
开头,则按照16
进制处理 - 当
str
以0
开头,则按照8
进制处理(但是ES5
取消了,可能还有一些老的浏览器使用)会按照10
进制处理 - 其他情况按照
10
进制处理
- 当
eslint
会建议parseInt
写第二个参数(是因为0
开始的那个8
进制写法不确定(如078
),会按照10
进制处理)
// 拆解
const arr = ["1", "2", "3"]
const res = arr.map((item,index,array)=>{
// item: '1', index: 0
// item: '2', index: 1
// item: '3', index: 2
return parseInt(item, index)
// parseInt('1', 0) // 0相当没有传,按照10进制处理返回1 等价于parseInt('1')
// parseInt('2', 1) // NaN 1不符合redix 2-36 的一个范围
// parseInt('3', 2) // 2进制没有3 返回NaN
})
// 答案 [1, NaN, NaN]
THE END
暂无评论内容