ExpertiDict

JavaScript · Intermediário · Português · Técnico

inteiro seguro

/ĩˈtejɾu seˈguɾu/substantivo

Número inteiro que o tipo Number representa sem perda, de -(2^53 - 1) a 2^53 - 1. Fora dessa faixa, inteiros vizinhos se confundem e as contas ficam erradas.

Onde usar

Aparece com ids de 64 bits vindos de APIs, que chegam arredondados no JSON.parse. Em code review, a solução é trafegar o id como string ou usar BigInt.

Em código

console.log(Number.MAX_SAFE_INTEGER);
// 9007199254740991
console.log(Number.isSafeInteger(2 ** 53));
// false
console.log(2 ** 53 === 2 ** 53 + 1);
// true

Exemplos

O id passou do inteiro seguro e chegou arredondado do JSON.

Use Number.isSafeInteger para checar antes de calcular.

Cuidado

Fazer contas com ids enormes como Number, sem checar Number.isSafeInteger.

Sinônimos

safe integer

Veja também

Todos os termos de JavaScript