提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
[‘12’, ‘13’, ‘14’].map(parseInt) what & why
一、map和parseInt?
map的使用
map中传入一个函数
['12', '13', '14'].map(function (item, index, arr) {
window.console.log('item-当前元素值', item);
window.console.log('index-当前元素的索引值', index);
window.console.log('arr-当前元素属于的数组对象', arr);
})
['12', '13', '14'].map(console.log);
// 等价于
['12', '13', '14'].map(function (item, index, arr) {
return console.log(item, index, arr)
});
parseInt方法接收两个参数,parseInt(string,radix?);
string:要被解析的值。如果参数不是一个字符串,则将其转换为字符串(toString)。字符串开头的空白符将会被忽略。
radix:可选。从 2 到 36,表示被解析的值的进制。例如说指定 10 就等于指定十进位。
基本用法:
1.当只接收一个参数,将字符串转为整数。如果字符串的第一个字符不能转化为数字(后面跟着数字的正负号除外),返回NaN
parseInt('11') // 11
parseInt('12') // 12
parseInt('13') // 13
parseInt('13abc') // 13
parseInt('abc13') // NaN
parseInt('abc13abc') // NaN
2.进制转换(接收两个参数),parseInt方法还可以接受第二个参数(2到36之间),表示被解析的值的进制,返回该值对应的十进制数。默认情况下,parseInt的第二个参数为10,即默认是十进制转十进制。
a.第一个参数解析规则参照第一条基本用法
b.如果第二个参数不是数值,会被自动转为一个整数。这个整数只有在2到36之间,才能得到有意义的结果,超出这个范围,则返回NaN。如果第二个参数是0、undefined和null,则直接忽略。
parseInt('11', 2) // 3 11以二进制转换为十进制
parseInt('11', 4) // 5 11以四进制转换为十进制
parseInt('11', 8) // 9 11以八进制转换为十进制
parseInt('11', 10) // 11 11以十进制转换为十进制
parseInt('11', 0) // 11 以十进制转换为十进制
parseInt('11', undefined) // 11 以十进制转换为十进制
parseInt('11', null) // 11 以十进制转换为十进制
parseInt('11', 1) // 没有1进制 NaN
parseInt('11', 37) // 无法转换 NaN
parseInt('13', 2) // 取可以被解析之前的数 1
parseInt('35', 4) // 取可以被解析之前的数 3
parseInt('15J', 10) // 取可以被解析之前的数 15
parseInt('11', 1) // 没有1进制 NaN
parseInt('11', 37) // 无法转换 NaN
parseInt('31', 2) // 二进制中没有3 无法转换 NaN
parseInt('51', 4) // 四进制中没有5 无法转换 NaN
parseInt('J15', 10) // 十进制中没有J 无法转换 NaN
parseInt('11', 0) // 11以十进制转换为十进制 11
parseInt('13', 1) // 没有1进制 NaN
parseInt('14', 2) // 取可以被解析之前的数 1
总结
[‘12’, ‘13’, ‘14’].map(parseInt)
['12', '13', '14'].map(parseInt);
// 等价于
['12', '13', '14'].map(function (item, index, arr) {
return parseInt(item, index, arr)
});
parseInt('12', 0) // 12以十进制转换为十进制 12
parseInt('13', 1) // 没有1进制 NaN
parseInt('14', 2) // 取可以被解析之前的数 1
// 结果
[12, NaN, 1]
看完觉得有用,点个赞哦