في هذا الدرس 6تصفّح المواضيع
تُخزَّن جميع الأرقام القياسية في JavaScript بصيغة عشرية ثنائية مزدوجة الدقة بطول 64 بت وفق معيار IEEE 754. ولتسهيل قراءة الأعداد الكبيرة بصرياً دون أي تأثير على قيمتها الحسابية، تتيح اللغة وضع الشرطة السفلية _ كفاصل رقمي مقروء مثل const yearlyVisitors = 2_500_000;.
لأن النظام الثنائي بالحاسوب لا يستطيع تمثيل بعض الكسور العشرية مثل 0.1 و0.2 بعدد منتهٍ من البتات (تماماً كما يتكرر الكسر 1/3 على هيئة 0.333... عشرياً)، ينتج جمع 0.1 + 0.2 الرقم 0.30000000000000004.
لضبط عرض الأسعار استخدم num.toFixed(2) مع الانتباه إلى أنها تُرجع سلسلة نصية منسقة مثل "0.30"، وفي الأنظمة المالية الدقيقة يُفضل إجراء الحساب بالهللات أو السنتات الصحيحة أولاً.
const budget = 1_250_000;
const rawSum = 0.1 + 0.2;
const cleanDisplay = rawSum.toFixed(2);
document.getElementById('dec-out').textContent =
'Budget: ' + budget + ' | 0.1+0.2 = ' + cleanDisplay;
قسمة عدد موجب على صفر في JavaScript لا توقف البرنامج، بل تنتج القيمة اللانهائية Infinity (وقسمة 0 / 0 تنتج NaN). وللتحقق الموثوق من سلامة الأعداد اعتمد دوال Number الحديثة التالية:
| دالة الفحص | وظيفتها الدقيقة | مثال يرجع true | مثال يرجع false |
|---|---|---|---|
Number.isNaN(x) | تتحقق حصراً من كون القيمة هي NaN الفعلية | Number.isNaN(0 / 0) | Number.isNaN("abc") (بلا تحويل خفي) |
Number.isFinite(x) | تتأكد أن القيمة رقم حقيقي محدود | Number.isFinite(42.5) | Number.isFinite(Infinity) |
Number.isInteger(x) | تتأكد أن القيمة عدد صحيح بلا كسور | Number.isInteger(100) | Number.isInteger(10.5) |
يوفر الكائن القياسي المدمج Math ثوابت رياضية جاهزة مثل Math.PI مع أربع دوال تقريب متكاملة: Math.round(x) لأقرب عدد صحيح، وMath.floor(x) للتقريب لأسفل، وMath.ceil(x) للتقريب لأعلى (مثالية لحساب عدد الصفحات اللازمة لعرض المنتجات)، وMath.trunc(x) لحذف الكسر مباشرة.
تعتمد الحسابات الهندسية والقياسية اليومية على خمس دوال سريعة في كائن Math: دالة الأسس Math.pow(2, 10) التي تنتج 1024، والجذر التربيعي Math.sqrt(81) التي تنتج 9، والقيمة المطلقة الموجبة Math.abs(-45)، ودالتي Math.max وMath.min لاستخراج أكبر وأصغر قيمة بين عدة أرقام.
تُرجع الدالة Math.random() كسراً عشرياً عشوائياً يبدأ من 0 ويقل دائماً عن 1. وعند دمجها مع Math.floor() نحصل على المعادلة القياسية لتوليد عدد صحيح عشوائي شامل للحدين الأدنى والأعلى مثل رمية النرد من 1 إلى 6:
const min = 1, max = 6;
const span = max - min + 1;
const diceRoll = Math.floor(Math.random() * span) + min;
const best = Math.max(72, 95, 88);
document.getElementById('math-out').textContent =
'Dice (1-6): ' + diceRoll + ' | Best: ' + best;
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
أتقنت في هذا الدرس تمثيل الأرقام والفواصل الرقمية، وتنسيق الكسور عبر toFixed()، وفحص الأرقام عبر Number.isNaN() وNumber.isFinite()، ودوال التقريب والأسس والجذور وتوليد الأرقام العشوائية في كائن Math. الخطوة التالية: انتقل الآن إلى درس «النصوص والقوالب النصية في JavaScript» لإتقان السلاسل النصية وقوالب Template Literals.
سجّل الدخول لحفظ تقدمك
تابع إنجاز المواضيع والمصطلحات والمهام، وكمّل من آخر خطوة على أي جهاز.
المصطلحات4
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 Numeric Separator (_) الفاصل الرقمي المقروء (_)
- شرطة سفلية توضع بين خانات الأرقام الكبيرة لتسهيل قراءتها بصرياً دون تغيير قيمتها الحسابية.
- للمراجعة
- 02 toFixed() دالة تنسيق الكسور toFixed
- دالة تقرب العدد إلى عدد محدد من الخانات العشرية وتُرجع النتيجة كسلسلة نصية جاهزة للعرض.
- للمراجعة
- 03 Number.isFinite() دالة الفحص Number.isFinite
- دالة فحص دقيقة ترجع true فقط مع الأرقام المحدودة الصالحة وترفض Infinity وNaN والنصوص.
- للمراجعة
- 04 Math.floor() دالة التقريب للأدنى Math.floor
- دالة رياضية تقرب العدد العشري نزولاً إلى أكبر عدد صحيح أصغر من القيمة أو مساوٍ لها.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
الاختصارات2
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 PRNG PRNG
- Pseudo-Random Number Generator
- مولد الأرقام شبه العشوائية السريع المستخدم في Math.random للألعاب والمحاكاة لا للتشفير الأمني.
- للمراجعة
- 02 OTP OTP
- One-Time Password
- رمز تحقق لمرة واحدة يجب توليده بمولد عشوائي مشفر آمن بدلاً من دالة Math.random العادية.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
مهامك قبل الاختبار
خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.
-
افتح التبويب الثاني في محاكي Math لملاحظة فرق التقريب بين -5 و-4 عند التعامل مع الأعداد السالبة.
-
افتح مثال النرد العشوائي في محرر التجربة وغيّر قيمة max من 6 إلى 20 ثم شغّل الكود عدة مرات.
تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.
اختبر فهمك.
ووصلها للإتقان.
كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.
أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.
الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.