كائن Math في JavaScript: التقريب، القوى، الجذور، والأرقام العشوائية

العمليات الحسابية في JavaScript لا تتوقف عند + و-. كائن Math يعطيك أدوات جاهزة للتقريب، المقارنة، الجذور، والقيم العشوائية.

هذا الدرس أساسي في كثير من المشاريع: حساب أسعار، ألعاب، إحصائيات، وتوليد قيم ديناميكية.

قاعدة مهمة

Math كائن مدمج في JavaScript، ولا تحتاج إلى new لإنشائه.

console.log(Math.PI); // 3.141592...

ماذا يفعل هذا الكود؟ يطبع قيمة ثابتة جاهزة من كائن Math.

النتيجة المتوقعة: الحصول على قيمة pi لاستخدامها في الحسابات الهندسية.

خطأ شائع: محاولة كتابة new Math() وهي غير صحيحة.

1) التقريب: round و floor و ceil

console.log(Math.round(4.5)); // 5
console.log(Math.floor(4.9)); // 4
console.log(Math.ceil(4.1));  // 5

ماذا يفعل هذا الكود؟ يوضح 3 طرق مختلفة للتقريب.

النتيجة المتوقعة: اختيار نوع التقريب حسب الحاجة العملية.

خطأ شائع: استخدام round عندما تريد دائماً النزول للأسفل (يجب استخدام floor).

2) max و min لاختيار أكبر/أصغر قيمة

console.log(Math.max(10, 25, 7)); // 25
console.log(Math.min(10, 25, 7)); // 7

ماذا يفعل هذا الكود؟ يبحث عن أكبر وأصغر قيمة بسرعة.

النتيجة المتوقعة: مفيد في تحليل النتائج أو الأسعار.

خطأ شائع: تمرير مصفوفة مباشرة بدون spread في بعض الحالات.

3) القوى والجذور: pow و sqrt

console.log(Math.pow(2, 3)); // 8
console.log(Math.sqrt(49));  // 7

ماذا يفعل هذا الكود؟ يحسب الأس والجذر التربيعي.

النتيجة المتوقعة: تقليل تعقيد كتابة المعادلات يدوياً.

خطأ شائع: الخلط بين pow(a, b) وبين الضرب العادي.

4) القيم العشوائية: Math.random()

const r = Math.random();
console.log(r); // رقم بين 0 و أقل من 1

ماذا يفعل هذا الكود؟ يولد قيمة عشوائية عشرية.

النتيجة المتوقعة: قيمة مختلفة غالباً في كل تشغيل.

خطأ شائع: توقع أن تعيد random() أرقاماً صحيحة مباشرة.

5) رقم عشوائي صحيح بين حدين (مهم جداً)

function randomInt(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

console.log(randomInt(1, 10));

ماذا يفعل هذا الكود؟ يولد رقماً صحيحاً داخل النطاق min..max (شاملاً الطرفين).

النتيجة المتوقعة: مناسب للألعاب والسحب العشوائي.

خطأ شائع: نسيان +1 في المعادلة، فيستبعد القيمة العليا.

مثال واقعي: تقريب السعر للعرض

const price = 19.678;
const shownPrice = Math.round(price * 100) / 100;
console.log(shownPrice); // 19.68

ماذا يفعل هذا الكود؟ يقرب السعر إلى منزلتين عشريتين للعرض.

النتيجة المتوقعة: قيمة أوضح في واجهات المتاجر.

خطأ شائع: عرض أرقام طويلة غير مريحة للمستخدم.

Story قصيرة: لعبة لا تعطي الرقم 10

مطور بنى لعبة تخمين من 1 إلى 10. استخدم Math.floor(Math.random() * 10) + 1 بشكل صحيح. قبل ذلك كان يستعمل صيغة خاطئة تستبعد 10، فاشتكى المستخدمون أن الرقم الأخير لا يظهر.

جدول سريع لأهم أدوات Math

الدالة وظيفتها مثال
Math.round() تقريب للأقرب Math.round(3.6) // 4
Math.floor() تقريب للأسفل Math.floor(3.9) // 3
Math.ceil() تقريب للأعلى Math.ceil(3.1) // 4
Math.max() أكبر قيمة Math.max(4, 9, 2) // 9
Math.min() أصغر قيمة Math.min(4, 9, 2) // 2
Math.random() عدد عشوائي عشري 0 <= n < 1

Checklist سريعة

  • أعرف متى أستخدم round وfloor وceil.
  • أستطيع توليد رقم عشوائي صحيح بين حدين.
  • أستخدم max وmin لاستخراج القيم القصوى بسرعة.
  • أفهم أن Math كائن جاهز ولا يحتاج إنشاء.
أفضل ممارسة: عند كتابة أي معادلة عشوائية، اختبرها عشرات المرات للتأكد أن كل القيم داخل النطاق تظهر فعلاً.

الأسئلة الشائعة — FAQ

ما الفرق بين Math.round و Math.floor و Math.ceil؟

round للأقرب، floor للأسفل دائماً، ceil للأعلى دائماً.

كيف أكتب random بين 1 و 10؟

استخدم: Math.floor(Math.random() * 10) + 1.

هل Math يحتاج new؟

لا، استخدمه مباشرة ككائن مدمج.

الخطوة التالية: انتقل إلى Dates في JavaScript لتتعلم التعامل مع الوقت والتاريخ بشكل عملي.

للمراجعة: Timing. للمتابعة: Dates.

المحرر الذكي

اكتب الكود وشاهد النتيجة فوراً

جرب الآن مجاناً
قناة ديف عربي

تابع أحدث الدروس والتحديثات مباشرة على واتساب

انضم الآن