نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر

نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
JS

منهج JavaScript

دليل مرجعي شامل

كل اللغات
مدرسة البرمجة/منهج JavaScript/التعامل مع الأعداد والعمليات الرياضية (Number & Math Methods)

التعامل مع الأعداد والعمليات الرياضية (Number & Math Methods)

math javascriptالاعداد والعمليات الحسابية جافاسكريبتmath.randomtoFixed javascriptرقم عشوائي جافاسكريبت

جدول مرجعي سريع

1
الدالةالوظيفةمثال
Math.round()تقريب لأقرب صحيحMath.round(4.5) → 5
Math.floor()تقريب للأسفلMath.floor(4.9) → 4
Math.ceil()تقريب للأعلىMath.ceil(4.1) → 5
Math.random()رقم عشوائي [0,1)0.734...
toFixed(n)تقريب لمنازل عشرية محددة (كنص)(3.14159).toFixed(2) → "3.14"

الشرح

جافاسكريبت تتعامل مع كل الأرقام (صحيحة وعشرية) بنوع بيانات واحد هو Number، المبني على معيار الفاصلة العائمة IEEE 754. هذا له تبعات مهمة يجب فهمها: بعض العمليات على الأعداد العشرية قد تُنتج نتائج غير دقيقة تماماً بسبب طريقة تمثيل الأعداد العشرية في الذاكرة، مثل أن 0.1 + 0.2 لا تساوي 0.3 تماماً في جافاسكريبت بل تُعطي نتيجة بها خطأ تقريب دقيق جداً.

كائن Number المدمج يوفر دوالاً مفيدة: Number.isInteger() للتحقق إن كان الرقم صحيحاً، Number.isNaN() للتحقق الدقيق من قيمة NaN (أدق من isNaN العامة التي تُحوّل النوع أولاً)، وtoFixed() لتقريب رقم عشري لعدد منازل عشرية محددة وإعادته كنص — مفيدة جداً في عرض الأسعار والعملات.

كائن Math المدمج يحتوي دوالاً وثوابت رياضية جاهزة: Math.round() للتقريب لأقرب عدد صحيح، Math.floor() للتقريب للأسفل دائماً، Math.ceil() للتقريب للأعلى دائماً، Math.abs() للقيمة المطلقة، Math.max() وMath.min() لأكبر وأصغر قيمة من قائمة، وMath.random() التي تُولّد رقماً عشوائياً عشرياً بين 0 (شاملاً) و1 (غير شامل).

لتوليد رقم صحيح عشوائي ضمن نطاق محدد (مثلاً بين 1 و100)، تُدمج Math.random() مع Math.floor() بمعادلة رياضية بسيطة — وهي نمط شائع جداً في الألعاب وأي سيناريو يحتاج عشوائية، مثل اختيار عنصر عشوائي من مصفوفة أو محاكاة رمي نرد.

الصياغة (Syntax)

syntax
1Math.round(4.6); // 5
2Math.floor(4.9); // 4
3Math.ceil(4.1); // 5
4Math.abs(-7); // 7
5Math.max(3, 9, 1); // 9
6Math.random(); // رقم عشوائي بين 0 و 1
7
8(3.14159).toFixed(2); // "3.14" (نص)

أمثلة عملية

مثال 1: توليد أرقام عشوائية ضمن نطاق

توليد أرقام عشوائية ضمن نطاق
1// توليد رقم صحيح عشوائي بين حدين (شامل الحدين)
2function رقم_عشوائي(الأدنى, الأعلى) {
3 return Math.floor(Math.random() * (الأعلى - الأدنى + 1)) + الأدنى;
4}
5console.log(رقم_عشوائي(1, 6)); // محاكاة رمي نرد: رقم بين 1 و 6

مثال 2: مشكلة دقة الفاصلة العائمة وحلها

مشكلة دقة الفاصلة العائمة وحلها
1// مشكلة دقة الأعداد العشرية الشهيرة
2console.log(0.1 + 0.2); // 0.30000000000000004 (خطأ تقريب!)
3console.log((0.1 + 0.2).toFixed(2)); // "0.30" (حل عملي للعرض)
4
5console.log(Number.isInteger(5)); // true
6console.log(Number.isInteger(5.5)); // false

نصائح احترافية

  • —0.1 + 0.2 لا تساوي 0.3 تماماً بسبب طبيعة تمثيل الأعداد العشرية — استخدم toFixed() عند العرض للمستخدم.
  • —toFixed() تُعيد النتيجة كنص وليس رقماً — استخدم Number(...) إذا احتجت العودة لرقم حقيقي.
  • —Math.floor(Math.random() * (max - min + 1)) + min هي المعادلة القياسية لرقم صحيح عشوائي بين min وmax شاملَين.
  • —Number.isNaN() أدق من isNaN() العامة لأنها لا تُحاول تحويل النوع قبل الفحص.

الدرس السابق

التعامل مع النصوص ودوالها (String Methods)

الدرس التالي

التعامل مع التواريخ والوقت (Dates & Time)

نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر