前端架构系列

parseInt的细节知识

2020-09-26  本文已影响0人  羽晞yose

parseInt经典面试题

let arr = [1, 2, 3, 4]
arr.map(parseInt) // 写出输出结果

parseInt语法

parseInt(string, radix)
string 必需。要被解析的字符串。
radix 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。

第二个值有两个特征:

  1. 如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。
  2. 如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN

要解答上述面试题,需了解两个知识点:

  1. 该方法传入参数具体规则
  1. 不同进制转换为10进制规则
2*16³ + 10*16² + 15*16¹ + 5*16º
2*16*16*16 + 10*16*16 + 15*16 + 5*1 = 10997

因此上面的经典面试题转换后变成以下四句

// 如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数
parseInt(1, 0) => 1

// 如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN
parseInt(2, 1) => NaN

// 3不是有效的2进制数字
parseInt(3, 2) => NaN

// 4不是有效的3进制数字
parseInt(4, 3) => NaN
上一篇下一篇

猜你喜欢

热点阅读