parseInt方法解析
# parseInt方法解析
这个问题要从一个面试题说起:
给出这句代码的执行结果 console.log([1, 2, 3, 4].map(parseInt)) 答案为 [1, NaN, NaN, NaN]
这道题考察的点:
- 对数组map方法的掌握
- 对parseInt函数的了解
- 考察对进制转化的掌握
- parseInt与parseFloat有何区别
关键是要搞清楚数组的map方法和parseInt方法:
# 数组map方法
数组的map方法,是ES5中为数组定义的迭代方法,返回结果是一个新数组,其结果是该数组中的每一个元素调用一次提供的函数后的返回值:
- 语法:
var new_array = arr.map(function callback(currentValue[, index[, array]]) {
// 新数组的返回元素
}[, thisArg])
1
2
3
2
3
- 参数:
- callback:数组迭代的每一项执行的回调函数,可以有三个参数:
- currentValue:当前迭代项
- index:当前迭代项的索引 (可选)
- array: map 方法调用的数组(可选)
- thisObject:在执行回调函数时定义的 this 对象(没有传递或者为 null,将会使用全局对象)。
# parseInt方法
- 语法
parseInt(string, radix);
1
- 返回值
从给定的字符串中解析出一个整数,或者NaN。
关于返回NaN:
- radix 小于 2 或大于 36
- 第一个非空格字符不能转换为数字。
parseInt(string, radix) 解析一个字符串并返回指定基数的十进制整数, radix 是2-36之间的整数,表示被解析字符串的基数。