Whats the difference between JS Number.MAX_SAFE_INTEGER and MAX_VALUE?
<blockquote>
  <p>Number.MAX_SAFE_INTEGER
  9007199254740991</p>
  
  <p>Number.MAX_VALUE
  1.7976931348623157e+308</p>
</blockquote>

<p>I understand how <code>MAX_SAFE_INTEGER</code> is computed based on JavaScript's double precision floating point arithmetic, but where does this huge max value come from? Is it the number that comes about if you're using all 63 bits for the exponent instead of the safe 11 bits?</p>