为什么我们需要使用基数?

基数究竟是什么意思? 我们为什么需要它?

parseInt(10, radixValue); 

你可能并不总是想把这个整数parsing成一个基数为10的数字,所以提供基数可以让你指定其他数字系统。

基数是单个数字的值的数量。 hex将是16.八进制将是8,二进制将是2,依此类推…

parseInt()函数中,你可以做几件事来提示基数而不提供它。 如果用户input的string与其中一个规则相匹配,但是没有明确的含义,那么这些字符也可能会对您有用。 例如:

 // Numbers with a leading 0 used a radix of 8 (octal) before ECMAScript 5. // These days, browsers will treat '0101' as decimal. var result = parseInt('0101'); // Numbers that start with 0x use a radix of 16 (hexidecimal) var result = parseInt('0x0101'); // Numbers starting with anything else assumes a radix of 10 var result = parseInt('101'); // Or you can specify the radix, in this case 2 (binary) var result = parseInt('0101', 2); 

因为如果你有一个像0700这样的string,并且希望输出是700你需要通知parseInt()它是十进制数而不是八进制数。

 console.log(parseInt("0700")); // 448 // I really wanted decimal (base 10) console.log(parseInt("0700", 10)); // 700 // What is this? Binary, Decimal, Octal? console.log(parseInt("0110")); // 72 // as binary console.log(parseInt("0110", 2)); // 6 

注意我只回答了你的问题的一半。 看看其他人对于基数究竟是什么的好的定义。

基数是数字系统的基数: http : //en.wikipedia.org/wiki/Radix

通常情况下,只需要指定基数,如果你想不同于10.更具体的(来自http://www.w3schools.com/jsref/jsref_parseInt.asp ):

如果省略了radix参数,那么JavaScript假定如下:

如果string以“0x”开头,则基数为16(hex)如果string以“0”开始,则基数为8(八进制)。 此function已弃用如果string以任何其他值开头,则基数为10(十进制)

基数是计数系统的基础。 有数量无限的数字系统,但大多数人所熟悉的是10(十进制)和2(二进制)。

数字值在不同的基础上可以有不同的解释。 例如,二进制中的数字10可以用十进制表示为2。

parseInt()的情况下,基数允许你指定要使用的基数。 默认情况下,使用10的基数。

但是,基数应该总是被指定,即使在使用基数10的情况下也是如此

parseInt("010") //返回8

乍一看,你可能会期望这个语句返回10.显式使用基数将有助于避免混淆:

parseInt("010", 10) //返回:10

radix参数用于指定要使用的数字系统,例如16(hex)的基数表示string中的数字应该从hex数字parsing为十进制数字。

如果省略了radix参数,那么JavaScript假定如下:

如果string以“0x”开始,则基数为16(hex)

如果string以“0”开始,则基数为8(八进制)。 此function已被弃用

如果string以任何其他值开始,则基数为10(十进制)

来源W3Schools

只需添加一些明确回答问题的附加信息即可:

如果基数未定义或0(或不存在),JavaScript假定如下:

  • […]
  • 如果inputstring以“0”开始,则基数为八(八进制)或十(十进制)。 究竟select哪个基数是依赖于实现的。 ECMAScript 5指定使用10(十进制),但并非所有的浏览器都支持这一点。 出于这个原因,当使用parseInt时总是指定一个基数。
  • […]

来源: MDN parseInt()