
إذا كنت قد درست اللغات المكتوبة بقوة ، فيجب أن تفهم أنه يجب تخزين قيمة معينة في الذاكرة مع تخصيص عدد من البايتات لها مسبقًا. على سبيل المثال ، يتم int تخصيص 4 بايت لرقم يساوي 32 بت ويمكن أن يحتوي على قيم 2³² ، مما يعني أنه يمكننا التعبير في النظام العشري من -2 147483 647 إلى 2147483 647. ما هو نوع الرقم المستخدم في JS؟
ينص معيار EcmaScript على أن قيمة الرقم: قيمة أولية تتوافق مع قيمة IEEE 754 ذات تنسيق ثنائي بدقة 64 بت. أي رقم double ( رقم دقيق مزدوج) يحتل 8 بايت = 64 بت (منها 1 بت مخصصة للإشارة إلى علامة رقم ، 11 بت للترتيب و 52 - الجزء العشري ، كل شيء بعد الفاصلة العشرية).

نطاق القيمة: 1.7E +/- 308 (15 رقمًا). يمكنك التحقق من هذا الرقم ورؤيته بالكامل عن طريق طباعة العدد الأقصى المسموح به لكائن الرقم في وحدة التحكم. Number.MAX_VALUEهنا رابط لمعيار IEEE754: https://en.wikipedia.org/wiki/IEEE_754 إذا تجاوزت هذا الرقم ، فسيعطينا الرقم قيمة 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 وانضم إلى مجموعتنا من المعجبين بتطوير الواجهة الأمامية