الأعداد
عرفت أن القيمة قد تكون من نوع number. هذه الجلسة تبقى على هذا النوع وحده: كيف تكتب الأعداد، وكيف تحسب يومياً، وكيف تميّز نتائج غريبة مثل NaN وInfinity، وكيف تعرض كسراً مرتباً في الصفحة.
كيف تعمل الأعداد في JavaScript؟
في مستوى المبتدئ، الأعداد الصحيحة والكسور يشتركان في نوع واحد: number. اكتبها بلا علامات اقتباس — 42 و3.5 أعداد؛ "42" نص. تجمع وتطرح وتضرب وتقسم وتأخذ الباقي. بعض العمليات تنتج نتائج خاصة: NaN («ليس عدداً») عندما لا يكون الحساب رقماً صالحاً، وInfinity عندما يتجاوز المقدار حداً محدوداً (مثل القسمة على صفر). للعرض، toFixed يبني نصاً بعدد أرقام عشرية تختاره.
أدوات العدد اليومية
📊 أدوات العدد التي يحتاجها المبتدئ أولاً
| الفكرة | مثال | النتيجة / ملاحظة |
|---|---|---|
| حرفي صحيح | let n = 10; |
عدد صحيح، النوع number |
| حرفي عشري | let p = 2.5; |
نفس نوع number |
| حساب | 10 + 3، 10 % 3 |
المجموع 13؛ الباقي 1 |
| NaN | 0 / 0 أو حساب فاسد |
«ليس عدداً» — وtypeof ما زال "number" |
| Infinity | 1 / 0 |
يتجاوز الحدود المحدودة |
toFixed |
(3.14159).toFixed(2) |
نص عرض "3.14" |
اكتب الأعداد بلا اقتباس
الصحيح والعشري هنا نوع واحد. لا حاجة لنوع «صحيح منفصل» في هذا المستوى.
let score = 42;
let price = 9.99;
console.log(score);
console.log(price);
console.log(typeof score);
console.log(typeof price);
حساب يومي
استخدم + و- و* و/ و% (الباقي). وحدة العوامل لاحقاً أعمق؛ هنا يكفي أن ترى الأعداد تحسب فعلاً.
let a = 10;
let b = 3;
console.log(a + b);
console.log(a - b);
console.log(a * b);
console.log(a / b);
console.log(a % b);
NaN — ليس عدداً صالحاً
NaN يعني أن النتيجة ليست رقماً مفيداً. حقيقة غريبة: typeof NaN ما زال "number". إذا بدا الحساب معطوباً، اطبع القيمة وابحث عن NaN.
let broken = 0 / 0;
console.log(broken);
console.log(typeof broken);
Infinity
قسمة عدد موجب على صفر تعطي Infinity (والمقسوم السالب -Infinity). هذه نتيجة حقيقية يُنتجها المحرك — مفيد أن تعرفها عند التصحيح.
let huge = 1 / 0;
console.log(huge);
console.log(typeof huge);
تنسيق الكسور بـ toFixed
toFixed(n) يعيد نصاً فيه n أرقام بعد الفاصلة — مناسب لعرض شبيه بالنقود. تذكّر: الناتج نص؛ أكمل الحساب على العدد الأصلي لا على النص المنسّق.
let total = 19.999;
console.log(total.toFixed(2));
console.log(typeof total.toFixed(2));
اعرض المجموع في الصفحة
احسب المجموع، نسّقه إن شئت، وضعه في الصفحة بـ textContent.
<!DOCTYPE html>
<html>
<head>
<title>Numbers — total on page</title>
</head>
<body>
<p id="out">…</p>
<script>
let price = 12.5;
let tax = 1.25;
let total = price + tax;
document.getElementById("out").textContent = "Total: " + total.toFixed(2);
</script>
</body>
</html>
الفقرة تعرض مجموعاً بأسلوب مبلغ. غيّر price أو tax، حدّث الصفحة، وتأكد أن السطر يتغير.
جرّبها بنفسك
- أنشئ عددَي
let(صحيحاً وعشرياً)؛ اطبع كلاً منهما وtypeof. - اطبع
a + bوa * bوa % bلعددين صغيرين. - اطبع
0 / 0وتأكد أنك ترىNaN. - اطبع
1 / 0وتأكد أنك ترىInfinity. - استدعِ
toFixed(2)على كسر ولاحظ أنtypeofالناتج"string". - في عرض HTML غيّر فقط
priceأوtax، حدّث، واقرأ المجموع الجديد.
أخطاء شائعة
- كتابة
let n = "10";وتوقع حساباً عددياً — الاقتباس يصنع نصاً - تجاهل
NaNعندما تبدو النتيجة «فارغة» في وحدة التحكم - الدهشة من
Infinityبعد القسمة على صفر - مواصلة الحساب على ناتج
toFixed(إنه نص) - انتظار نوع صحيح منفصل — المبتدئ يستخدم نوع number واحداً
ملخص
- الصحيح والعشري يشتركان في نوع number؛ اكتبهما بلا اقتباس
- للحساب اليومي استخدم
+و-و*و/و% - NaN وInfinity نتائج عددية خاصة يستحقان التعرف
toFixedينسّق الكسور للعرض ويعيد نصاً- التالي: السلاسل النصية — العمل مع النص بتفصيل أكبر
🧠 اختبر معرفتك
اختبر معرفتك
تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع
📝 التعليمات
- اقرأ كل سؤال بعناية
- اختر أفضل إجابة لكل سؤال
- يمكنك إعادة الاختبار عدة مرات كما تريد
- سيتم عرض تقدمك في الأعلى