الانتقال إلى المحتوى الرئيسي
الوحدة 2 · الدرس 3 من 47/32 في الدورة~10 min
دروس الوحدة (3/4)

الأرقام والرياضيات

يوجد في JavaScript نوع رقمي واحد فقط: number. كلا الأعداد الصحيحة والكسور العشرية (النقطة العائمة) موجودة هناك. لا يوجد int منفصل / float كما هو الحال في اللغات الأخرى.

JS
typeof 42; // 'number'
typeof 3.14; // 'number'
typeof -0.001; // 'number'
typeof Infinity; // 'number'   ← Infinity is a special number
typeof NaN; // 'number'   ← even "Not a Number" is a number (!)

الكائن العام Math

Math ليست دالة: إنها كائن يحتوي على طرق مفيدة و الثوابت. لا يمكنك إنشاء مثيل له، بل تستخدمه مباشرة:

JS
Math.min(3, 1, 7); // 1
Math.max(3, 1, 7); // 7
Math.abs(-5); // 5
Math.round(4.5); // 5
Math.floor(4.9); // 4   (always rounds down)
Math.ceil(4.1); // 5   (always rounds up)
Math.sqrt(16); // 4
Math.pow(2, 10); // 1024   (equivalent to 2 ** 10)
Math.PI; // 3.141592653589793

أرقام عشوائية

Math.random() تقوم بإرجاع رقم عشري بين 0 (مضمن) و1 (مستبعد). للحصول على عدد صحيح في نطاق تستخدم صيغة صغيرة:

JS
// Random integer between 0 and 9
Math.floor(Math.random() * 10);

// Random integer between 1 and 6 (a six-sided die)
Math.floor(Math.random() * 6) + 1;

آلام الكسور العشرية (النقطة العائمة)

يستخدم JS تمثيل IEEE-754 64 بت، والذي تتم مشاركته مع الجميع تقريبًا اللغات. إنه تمثيل ثنائي، لذا لا يمكن أن تكون بعض الكسور العشرية كذلك ممثلة بالضبط:

JS
0.1 + 0.2; // 0.30000000000000004 (!)
0.1 + 0.2 === 0.3; // false

الحل القياسي: دائري بـ toFixed(n) (الذي يُرجع سلسلة) أو استخدم الأعداد الصحيحة بالسنت/الألف عند التعامل مع المال:

JS
(0.1 + 0.2).toFixed(2); // '0.30' (string)
Number((0.1 + 0.2).toFixed(2)); // 0.3 (number)

جربه

تمرين#js.m2.l3.e1
المحاولات: 0جارٍ التحميل…

احسب مساحة دائرة نصف قطرها `r = 5` مقربًا إلى منزلتين عشريتين، على هيئة "رقم". بالنسبة إلى `r=5`، من المتوقع أن يكون 78.54.

جارٍ تحميل المحرر…
إظهار التلميح

Math.PI لـ pi، ** للأس؛ .toFixed(2) للتقريب، Number(...) للتحويل مرة أخرى إلى رقم.

الحل متاح بعد 3 من المحاولات

تمرين المراجعة

تمرين#js.m2.l3.e2
المحاولات: 0جارٍ التحميل…

بالنظر إلى ثلاثة أرقام 12، 7، 23، قم بإرجاع الفرق بين الحد الأقصى والحد الأدنى (أي 16) كتعبير أخير.

جارٍ تحميل المحرر…
إظهار التلميح

يقبل Math.max وMath.min وسائط متعددة مفصولة بفواصل.

الحل متاح بعد 3 من المحاولات