
Se você estudou linguagens fortemente tipadas, deve entender que um determinado valor deve ser armazenado na memória com um número de bytes pré-alocados para ele. Por exemplo, int
4 bytes são alocados para um número , que é igual a 32 bits e pode conter 2³² valores, o que significa que podemos expressar no sistema decimal de -2147 483 647 a 2 147 483 647. Que tipo de número é usado em JS?
O padrão EcmaScript diz que Number Value: valor primitivo correspondente a um valor IEEE 754 de formato binário de 64 bits de precisão dupla. Ou seja, um número double
( número de precisão dupla) ocupando 8 bytes = 64 bits (dos quais 1 bit é alocado para indicar o sinal de um número, 11 bits para a ordem e 52 - mantissa, tudo após o ponto decimal).

Faixa de valor: 1,7E +/- 308 (15 dígitos). Você pode verificar e ver este número por completo imprimindo o número máximo permitido do objeto Número no console. Number.MAX_VALUE
Aqui está um link para o padrão IEEE754: https://en.wikipedia.org/wiki/IEEE_754 Se você for além desse número, o Número nos dará um valor Infinity
...

, double
?
: 9,007,199,254,740,991 ~9 . , . Number: Number.MAX_SAFE_INTEGER
.
, , :

, isSafeInteger()
:

, , double
. , ? , , , int
4 , 8! , V8 Number:

, . int
int32
Uint32
( ±), BigInt
. Integer
Number
, Int32
Uint32
Integer
.

gitHub': https://github.com/v8/v8/blob/master/include/v8.h#L3039
V8 C++ 4 . , V8 double 8 . , , .

Performance Tip for JS in v8 Chris Wilsonhttps://www.html5rocks.com/en/tutorials/speed/v8/
. JS — , API . , window.setTimeout()
. JavaScript. setTimeout int32
, , 2 147 483 647, 9 . setTimout()
2 147 483 648 ( 1 Int32
), . JS . .
P.S. , setTimeout 25 . , .
Obrigado a todos, inscrevam-se na minha página VK e juntem - se ao nosso grupo de fãs de desenvolvimento de frontend