انتقل إلى محتوى الدرس
الدرس 11
دورة جافا سكريبت

الأرقام وكائن Math في JavaScriptJavaScript Numbers and Math

تعامل بثقة مع الأرقام وكائن Math في JavaScript: دقة الكسور وتنسيق toFixed، الفواصل الرقمية، فحص الأعداد عبر Number.isFinite، دوال التقريب والأسس، وتوليد أرقام عشوائية.
أقسام الدرس
6
الأمثلة
2
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
8
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

تُخزَّن جميع الأرقام القياسية في JavaScript بصيغة عشرية ثنائية مزدوجة الدقة بطول 64 بت وفق معيار IEEE 754. ولتسهيل قراءة الأعداد الكبيرة بصرياً دون أي تأثير على قيمتها الحسابية، تتيح اللغة وضع الشرطة السفلية _ كفاصل رقمي مقروء مثل const yearlyVisitors = 2_500_000;.

مخطط مقارنة دوال التقريب الأربع في كائن Math: دالة round وfloor وceil وtrunc

لأن النظام الثنائي بالحاسوب لا يستطيع تمثيل بعض الكسور العشرية مثل 0.1 و0.2 بعدد منتهٍ من البتات (تماماً كما يتكرر الكسر 1/3 على هيئة 0.333... عشرياً)، ينتج جمع 0.1 + 0.2 الرقم 0.30000000000000004.

لضبط عرض الأسعار استخدم num.toFixed(2) مع الانتباه إلى أنها تُرجع سلسلة نصية منسقة مثل "0.30"، وفي الأنظمة المالية الدقيقة يُفضل إجراء الحساب بالهللات أو السنتات الصحيحة أولاً.

JavaScript
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:

JavaScript
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

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 Numeric Separator (_) الفاصل الرقمي المقروء (_)
شرطة سفلية توضع بين خانات الأرقام الكبيرة لتسهيل قراءتها بصرياً دون تغيير قيمتها الحسابية.
للمراجعة
02 toFixed() دالة تنسيق الكسور toFixed
دالة تقرب العدد إلى عدد محدد من الخانات العشرية وتُرجع النتيجة كسلسلة نصية جاهزة للعرض.
للمراجعة
03 Number.isFinite() دالة الفحص Number.isFinite
دالة فحص دقيقة ترجع true فقط مع الأرقام المحدودة الصالحة وترفض Infinity وNaN والنصوص.
للمراجعة
04 Math.floor() دالة التقريب للأدنى Math.floor
دالة رياضية تقرب العدد العشري نزولاً إلى أكبر عدد صحيح أصغر من القيمة أو مساوٍ لها.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات2

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 2 مفهومةأول بطاقة، أول خطوة
01 PRNG PRNG
Pseudo-Random Number Generator
مولد الأرقام شبه العشوائية السريع المستخدم في Math.random للألعاب والمحاكاة لا للتشفير الأمني.
للمراجعة
02 OTP OTP
One-Time Password
رمز تحقق لمرة واحدة يجب توليده بمولد عشوائي مشفر آمن بدلاً من دالة Math.random العادية.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. افتح التبويب الثاني في محاكي Math لملاحظة فرق التقريب بين -5 و-4 عند التعامل مع الأعداد السالبة.

  2. افتح مثال النرد العشوائي في محرر التجربة وغيّر قيمة max من 6 إلى 20 ثم شغّل الكود عدة مرات.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

10أسئلة 2أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي10 أسئلة تنتظرك
01

ما نوع القيمة التي ترجعها الدالة (19.9).toFixed(2)؟

02

أي دالة في كائن Math تقرب العدد 2.1 صعوداً إلى 3 دائماً (مثل حساب عدد صفحات العرض)؟

03

كتابة الرقم بالفاصل الرقمي 1_000_000 في JavaScript تكافئ تماماً القيمة الرقمية 1000000.

04

ما الناتج الذي يعطيه محرك JavaScript عند حساب قسمة عدد موجب على صفر 10 / 0؟

05

ترجع الدالة الحديثة Number.isNaN("hello") القيمة false لأن "hello" نص وليست قيمة NaN الرقمية.

06

ما المجال الرقمي الذي ترجعه الدالة Math.random() بمفردها؟

07

ما الناتج الحسابي لاستدعاء دالة الجذر التربيعي Math.sqrt(64)؟

08

تُعد الدالة Math.random() آمنة تشفيرياً ويُنصح بها لتوليد كلمات المرور المصرفية السرية.

09

أي دالة رياضية تحول القيمة السالبة مثل -25 إلى قيمتها المطلقة الموجبة 25؟

10

ما النتيجة المنطقية التي ترجعها العبارة Number.isInteger(14.5)؟