Como o javascript trata inteiros grandes (mais de 52 bits)?
Considere este código (nó v5.0.0)
const a = Math.pow(2, 53)
const b = Math.pow(2, 53) + 1
const c = Math.pow(2, 53) + 2
console.log(a === b) // true
console.log(a === c) // false
Por quêa === b
é verdade?
Qual é o valor inteiro máximo que o javascript pode manipular?
Estou implementando um gerador inteiro aleatório de até 2 ^ 64. Existe alguma armadilha que eu deveria estar ciente?