['1', '2', '3'].map(parseInt)

55 阅读1分钟
  • parseInt ,我们都知道用来对数据进行取整,若是不合理,便返回 NaN 。还有一个可选属性 radix,我们来介绍一下。

parseInt(stringradix)  解析一个字符串并返回指定基数的十进制整数,radix 是 2-36 之间的整数,表示被解析字符串的基数

radix处于2-36之间计算方法

parseInt('123', 5) // 将'123'看作 5 进制数,返回十进制数 38 => 1*5^2 + 2*5^1 + 3*5^0 = 38

如果 radix 是 undefined0或未指定的,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 (十进制)。

由此得出结论

	return parseInt(value, index)
})
index = 0: parsetInt('1', 0) = 1
index = 1: parsetInt('2', 1) = NaN
index = 2: parsetInt('3', 2) = NaN // 因为 2进制必须是 0,1数字表示

你看懂了吗 此文章为9月Day013学习笔记,内容来源于极客时间《重学前端》,强烈推荐该课程