为什么在调用parseInt时需要使用基数参数?
为什么在调用parseInt时需要使用基数参数?
“radix”究竟是什么意思?为什么我们需要它?
parseInt(10, radixValue);
admin 更改状态以发布 2023年5月21日
因为如果你有一个字符串号码,比如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
请注意,我只回答了你问题的一半。有关基数实际上是什么的良好定义,请参见其他人的回答。
您可能不总想将整数解析为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);