parseInt解读

113 阅读1分钟

parseInt()函数是将字符串解析后并返回一个整数。

// 有意思的问题
[1,2,3].map(parseInt) // 1,NaN,NaN
// 问题:输出为何在2 和 3 的时候变为NaN
// 原因:parseInt函数第二个参数用作基数来解析提供的字符串
// 解读
// 1. parseInt 第二个参数如何提供的?
//  - map函数有三个参数, 分别为 当前项, 当前索引, 被遍历数组
//  - 以此得知parseInt第一个参数及第二个参数为 map函数的 当前项 和 当前索引
// 2. 步骤解读 map函数
//  - parseInt(1, 0)  输出:1 解读:当parseInt第二个参数被省略或者提供0或10时, 效果相同,parseInt函数将1当作10进制数进行解读, 10进制数1 输出为1
//  - parseInt(2,1)   输出:NaN 
// 解读:parseInt函数 第二个参数的接受范围为 2 - 36,或者‘0x’或者‘0X’开头的数值【0x000011 - 代表 16进制数】,一旦parseInt 第二个参数不满足上述需求时 输出 NaN
//  - parseInt(3,2)   输出:NaN
// 解读:此时提供给parseInt函数的第二个参数为2, 满足2 - 36 条件, 则parseInit 将提供的解析数3 当做2进制数进行处理,但在2进制数中,不存在3【具体见下】则输出NaN
// 二进制数形如 
// 1. 11 代表 3
// 2. 1 代表 1
// 3. 10 代表 2
// 4. 101 代表 5
// 通过上述4个例子 发现在二进制数中每一位的数都不会超过2 - 以此 上述中 3 被解析为NaN 原因