
厳密に型指定された言語を学習した場合は、特定の値を事前に割り当てられたバイト数とともにメモリに格納する必要があることを理解する必要があります。たとえば、int 32ビットに等しい2³²の値を含むことができる数値に4バイトが 割り当てられます。つまり、-2 147 483647から2147 483647までの10進法で表すことができます。JSではどのタイプの数値が使用されますか。
EcmaScript標準では、数値:倍精度64ビットバイナリ形式のIEEE754値に対応するプリミティブ値とされています。つまり、double 8バイト= 64ビットを占める数値 (倍精度の数値)(そのうちの1ビットは数値の符号を示すために割り当てられ、11ビットは順序を示し、52-マンティッサは小数点以下すべてを示します)。

値の範囲:1.7E +/- 308(15桁)。コンソールにNumberオブジェクトの最大許容数を出力することで、この数を完全に確認できます Number.MAX_VALUE。IEEE754標準へのリンクは次のとおりです。https: //en.wikipedia.org/wiki/IEEE_754この数を超えると、Numberは値を示します。 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 . , .
みなさん、ありがとうございました。私のVKページを購読して、フロントエンド開発のファンのグループに参加してください。