parseInt 的用法
parseInt 是 JavaScript 中的一个全局函数,用于将字符串转换为整数。它的基本语法如下:
parseInt(string, radix);
- string:要解析的字符串。
- radix(可选):字符串的基数,可以是 2 到 36 之间的整数,表示数字的进制。如果不提供该参数,parseInt 会根据字符串的格式自动判断基数。
解答
在 JavaScript 中,['1', '2', '3'].map(parseInt)
的执行过程如下:
map
函数遍历数组中的每个元素,并对每个元素执行parseInt
函数。parseInt
函数接受两个参数:第一个是要解析的字符串,第二个是基数(radix),用于指定字符串的数制。- 在
map
函数中,除了当前元素外,还会传递当前元素的索引给回调函数。因此,对于['1', '2', '3']
数组,parseInt
实际上被调用为:parseInt('1', 0)
:这里基数为 0,JavaScript 会将字符串视为十进制数,因此返回 1。parseInt('2', 1)
:基数为 1 是无效的,因为 JavaScript 中的parseInt
不支持基数为 1 的解析,所以返回NaN
。parseInt('3', 2)
:基数为 2 表示解析为二进制数,但 ‘3’ 不是有效的二进制数字,因此返回NaN
。
所以,['1', '2', '3'].map(parseInt)
的结果是 [1, NaN, NaN]
。
如何实现正确的效果
let res1 = ["1", "2", "3"].map(parseInt);
let res2 = ["1", "2", "3"].map(Number); // !!!
console.log(res1);
console.log(res2);