MDN

parseInt( string, radis ) 解析一个字符串并返回指定基数的十进制整数。radis 范围:2 ~ 36 之间的整数,radis 指被解析字符串的基数; 返回值:可将字符串解析为整数,或 NaN;

返回值为 NaN 情况:

  1. radis:radis < 2 || 36 < radis ;
  2. 字符串的第一个非空字符不能转为数字;

如果 radix 是 undefined、0或未指定的,JavaScript会假定以下情况:

  1. 如果输入的 string以 “0x”或 “0X”(一个0,后面是小写或大写的X)开头,那么radix被假定为16,字符串的其余部分被当做十六进制数去解析。
  2. 如果输入的 string以 “0”(0)开头, radix被假定为8(八进制)或10(十进制)。具体选择哪一个radix取决于实现。ECMAScript 5 澄清了应该使用 10 (十进制),但不是所有的浏览器都支持。因此,在使用 parseInt 时,一定要指定一个 radix。
  3. 如果输入的 string 以任何其他值开头, radix 是 10 (十进制)。

如果第一个字符不能转换为数字,parseInt会返回 NaN。

面试题:

问:**[1, 2, 3].map(parseInt)**输出什么?
答:parseInt 作为 map 的 callback 在使用,类似于:

  1. [1, 2, 3].map((item, index) => {
  2. return parseInt(item, index);
  3. })
  4. // [ parseInt(1, 0), parseInt(2, 1), parseInt(3, 2) ] => [1, NaN, NaN]