javascript - Por que precisamos usar o parâmetro radix ao chamar `parseInt`?
O que radix realmente significa? Por que precisamos disso?
parseInt(10, radixValue);
Resposta #1
Você pode nem sempre querer analisar o inteiro como um número na base 10, então fornecer a base permite que você especifique outros sistemas numéricos.
A base é o número de valores para um único dígito. Hexadecimal seria 16. Octal seria 8, Binário seria 2, e assim por diante...
Na função parseInt(), existem várias coisas que você pode fazer para indicar a base numérica sem fornecê-la. Isso também pode ser um problema se o usuário estiver digitando uma string que corresponde a uma das regras, mas não pretende expressamente isso. Por exemplo:
// 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);
Resposta #2
Porque se você tiver um número em forma de string como 0700 e quiser que a saída seja o inteiro 700, você precisa informar ao parseInt() que se trata de um número decimal em vez de octal.
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));
// 6Nota Eu respondi apenas metade da sua pergunta. Veja outros para boas definições do que é realmente uma raiz.
