为什么在调用parseInt时需要使用基数参数?

9 浏览
0 Comments

为什么在调用parseInt时需要使用基数参数?

“radix”究竟是什么意思?为什么我们需要它?

parseInt(10, radixValue); 

admin 更改状态以发布 2023年5月21日
0
0 Comments

因为如果你有一个字符串号码,比如0700,你想要输出整数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


请注意,我只回答了你问题的一半。有关基数实际上是什么的良好定义,请参见其他人的回答。

0
0 Comments

您可能不总想将整数解析为10进制数,因此提供基数让您可以指定其他数字系统。

基数是单个数字的可取值数。十六进制为16,八进制为8,二进制为2,以此类推...

parseInt()函数中,您可以通过一些操作指示基数而无需明确提供它。但是如果用户输入的字符串符合其中一条规则,但并不想解析为该基数,则这些操作也可能会对您不利。例如:

// 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);

0