Wenn Sie stark typisierte Sprachen gelernt haben, sollten Sie verstehen, dass ein bestimmter Wert mit einer vorab zugewiesenen Anzahl von Bytes im Speicher gespeichert werden muss. Zum Beispiel werden int
4 Bytes für eine Zahl zugewiesen, die 32 Bit entspricht und 2³²-Werte enthalten kann, was bedeutet, dass wir im Dezimalsystem von -2 147 483 647 bis 2 147 483 647 ausdrücken können. Welche Art von Zahl wird in JS verwendet?
Der EcmaScript-Standard besagt, dass Number Value: primitiver Wert, der einem IEEE 754-Wert im 64-Bit-Binärformat mit doppelter Genauigkeit entspricht. Das heißt, eine Zahl double
( Zahl mit doppelter Genauigkeit), die 8 Bytes = 64 Bits belegt (von denen 1 Bit zugewiesen ist, um das Vorzeichen einer Zahl anzuzeigen, 11 Bits für die Reihenfolge und 52 - Mantisse, alles nach dem Dezimalpunkt).
Wertebereich: 1,7E +/- 308 (15 Stellen). Sie können diese Nummer vollständig überprüfen und Number.MAX_VALUE
anzeigen, indem Sie die maximal zulässige Nummer des Number-Objekts in der Konsole ausdrucken . Hier ist ein Link zum IEEE754-Standard: https://en.wikipedia.org/wiki/IEEE_754 Wenn wir über diese Nummer hinausgehen, gibt Number uns einen Wert 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 . , .
Vielen Dank an alle, abonnieren Sie meine VK-Seite und schließen Sie sich unserer Gruppe von Fans der Frontend- Entwicklung an