In JavaScript, the Number data type is 64 bits long.
How then is Number.MAX_VALUE === 1.7976931348623157e+308
and Math.pow(2, 64) === 18446744073709552000
?
How can the Number data type only be 64 bits, but have a higher value than 2^64?
Also I noticed that Math.pow(2, 64) + 1 === Math.pow(2, 64)
but Math.pow(2, 64) + 10000 !== Math.pow(2, 64)
Why would 2^64 + 1 be equal to 2^64 and 2^64 + 10000 not?