parseInt()是一个js的取整函数,但是真正的了解这个函数吗
var arr = [1,2,3];
console.log(arr.map(parseInt));
我在看到这段代码的时候以为这段的代码的结果就是[1,2,3],然而事实却并不是这样的,我们在控制台中可以看到输出的是[1,NaN,NaN]
查了一下书,发现parsetInt是可以接受俩个参数的,在日常使用由于常常只对其传一个参数,所以慢慢就忽略了它还有另外一个可选参数
定义和用法
parseInt() 函数可解析一个字符串,并返回一个整数。
语法
parseInt(string, radix)
参数 描述
string 必需。要被解析的字符串。
radix
可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。
如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。
如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN
所以这就可以接受我刚才的那个疑惑,parseInt将数组的索引值默认为了它的第二个参数,所以会得出这样的结果,我们看下一个例子就可以很好的印证这一点
var arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17];
console.log(arr.map(parseInt));
// [1,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,9,11,13,15,17,19,21,23]
也就是说每次会给parseInt传入俩个参数”1-0,2-1,3-2,4-3,5-4,6-5,7-6,8-7,9-8,10-9,11-10,12-11,13-12,14-13,15-14,16-15,17-16”,按照前一个数以后一个数对应的进制数表示就可以得出输出结果