JavaScript: عوامل جافاسكريبت

آخر تحديث: 2026-10-13

العوامل هي رموز تخبر جافاسكريبت بأي عملية تنفيذ. تستخدم + للجمع كل يوم، لكن عوامل JS تتجاوز الحسابيات بكثير — التعيين، والمقارنة، والتقييم المنطقي كلها تعتمد عليها. هذا الدرس يغطي أكثر العوامل استخدامًا دفعة واحدة.

دوال رياضية ذات صلة:Math.pow() if...else

1. العوامل الحسابية

العامل المعنى مثال
+ جمع 5 + 3 → 8
- طرح 5 - 3 → 2
* ضرب 5 * 3 → 15
/ قسمة 6 / 3 → 2
% باقي 7 % 3 → 1
** أس 2 ** 3 → 8
++ زيادة x++ أو ++x
-- نقصان x-- أو --x

عامل الباقي % مفيد بشكل خاص — التحقق من فردي/زائد، والالتفاف في الحلقات، والمزيد. ** هو عامل الأس المُضاف في ES2016، يعادل Math.pow() لكنه أكثر اختصارًا.

الفرق بين البادئ واللاحق ++ / --: البادئ يغير أولاً ثم يُرجع، اللاحق يُرجع أولاً ثم يغير. لا تسلسل عدة ++ على نفس السطر — يصبح الكود لغزًا غير مقروء.

HTML
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
  <meta charset="UTF-8">
  <title>العوامل الحسابية</title>
</head>
<body>
  <h3>عرض العوامل الحسابية</h3>
  <pre id="output"></pre>
  <script>
    var out = document.getElementById('output');
    var a = 17, b = 5;

    var lines = [];
    lines.push('a = ' + a + ', b = ' + b);
    lines.push('a + b  = ' + (a + b));
    lines.push('a - b  = ' + (a - b));
    lines.push('a * b  = ' + (a * b));
    lines.push('a / b  = ' + (a / b));
    lines.push('a % b  = ' + (a % b));
    lines.push('a ** b = ' + (a ** b));

    var x = 10;
    lines.push('');
    lines.push('x = 10');
    lines.push('x++  = ' + (x++) + '  (لاحق: يُرجع القيمة القديمة، x يصبح ' + x + ')');
    lines.push('++x  = ' + (++x) + '  (بادئ: يغير أولاً، x يصبح ' + x + ')');

    out.textContent = lines.join('\n');
  </script>
</body>
</html>

2. عوامل التعيين

= هو تعيين، وليس "يساوي" بالمعنى الرياضي. هذا أحد أكثر فخاخ المبتدئين شيوعًا — if (x = 5) لن يُلقي خطأ؛ إنه يُعيّن 5 لـ x ويُرجع 5 (قيمة صحيحة)،🦄 الشرط دائمًا صحيح.

التعيين المركب هو اختصار:

الاختصار المعادل
x += 5 x = x + 5
x -= 3 x = x - 3
x *= 2 x = x * 2
x /= 4 x = x / 4
x %= 3 x = x % 3

▶ مثال: عوامل التعيين

▶ جرّب الكود

3. عوامل المقارنة

العامل المعنى
== تساوي متساهل (يُجري إكراه الأنواع)
=== تساوي صارم (لا إكراه للأنواع)
!= عدم تساوي متساهل
!== عدم تساوي صارم
> أكبر من
< أصغر من
>= أكبر من أو يساوي
<= أصغر من أو يساوي

⚠️ فخ == مقابل ===: هذا هو أكثر فخاخ جافاسكريبت كلاسيكية، بلا منازع. == يُجري إكراه الأنواع بصمت — "5" == 5 هو true! بينما === يتطلب تطابق النوع والقيمة — "5" === 5 هو false. استخدم دائمًا === إلا إذا كنت تحتاج تحديدًا إلى إكراه الأنواع. كذلك، استخدم !== بدلاً من !=.

▶ مثال: فخ == مقابل ===

▶ جرّب الكود

هل رأيت؟ 0 == false و"" == false كلاهما true — غير منطقي تمامًا. إنها مثل تفاح وبرتقال: == يقول "كلاهما فاكهة، قريب بما فيه الكفاية"; === يقول "ليسوا متماثلين، نقطة". الزم === وستتجنب نصف أخطائك.


4. العوامل المنطقية

العامل المعنى الوصف
&& AND صحيح فقط عندما يكون كلا الجانبين صحيحًا
|| OR صحيح عندما يكون أي جانب صحيحًا
! NOT ينفي القيمة

&& و|| لديهما ميزة مفيدة تسمى التقييم المختصر: && يتوقف عند أول قيمة خاطئة، || يتوقف عند أول قيمة صحيحة — الباقي لا يُقيَّم أبدًا. يُستخدم عادةً لتعيينات شرطية مختصرة:

HTML
<script>
var name = userInput || 'مجهول';
</script>

▶ مثال: العوامل المنطقية والتقييم المختصر

▶ جرّب الكود

5. عامل + مع النصوص

عندما يواجه + نصًا، يصبح عامل ربط: طالما أن أحد الجانبين نصًا، يتحول الجانب الآخر إلى نص ويُربطان معًا.

HTML
<script>
"مرحبا" + " " + "عالم"   // "مرحبا عالم"
"رقم: " + 42            // "رقم: 42"
3 + 4 + "بكسل"              // "7بكسل" (3+4=7 أولاً، ثم يُربط)
"بكسل" + 3 + 4              // "بكسل34" (من اليسار لليمين: "بكسل"+3="بكسل3"، ثم +4)
</script>

هذا "بكسل" + 3 + 4 يُعطي "بكسل34" بدلاً من "بكسل7" هو فخ مقابلة كلاسيكي — + يُقيّم من اليسار لليمين، وبمجرد أن يصبح الجانب الأيسر نصًا، يصبح كل ما بعده ربطًا.


6. نظرة عامة على العامل الثلاثي

العامل الثلاثي هو اختصار لـ if...else، بالبناء: condition ? value1 : value2.

HTML
<script>
var status = age >= 18 ? 'بالغ' : 'قاصر';
</script>

إذا كان الشرط صحيحًا، يُرجع value1؛ وإلا value2. الشروط البسيطة تعمل بشكل أنيق مع العامل الثلاثي، لكن لا تعشّقها — a ? b ? c : d : e هو وصفة للارتباك. الاستخدام التفصيلي يُغطى في الدرس 10.


7. أولوية العوامل

تحدد جافاسكريبت أمر التقييم بناءً على الأولوية، متبعًا نفس القواعد التي تعلمتها في حصة الرياضيات: الضرب والقسمة قبل الجمع والطرح، والأقواس أولاً.

HTML
<script>
2 + 3 * 4     // 14، وليس 20
(2 + 3) * 4   // 20
</script>

الأولوية الشائعة من الأعلى إلى الأدنى: () → ! → ** → * / % → + - → > < >= <= → == === != !== → && → || → ?: → =.

عند الشك، أضف أقواسًا. الأقواس مجانية، لكن الأخطاء مكلفة.



دوال رياضية ذات صلة:Math.pow() if...else

❓ أسئلة شائعة

س لماذا يُعطي "1" + 2 + 3 "123" بدلاً من "15"؟
ج + يُقيّم من اليسار لليمين. "1" + 2 يُنتج النص "12"، ثم "12" + 3 يُعطي "123". لإضافة الأرقام أولاً، استخدم الأقواس: "1" + (2 + 3) يُعطي "15".
س لماذا 0 == false صحيح؟
ج == يُجري إكراه الأنواع قبل المقارنة. كلا 0 وfalse يتحولان إلى الرقم 0،🦄ما متساويان. لهذا يُوصى بـ === — لا يُجري إكراه،🦄 0 === false هو false.
س ما الفرق بين x++ و++x؟
ج عند استخدامهما بمفردهما، كلاهما يزيد x بمقدار 1. الفرق في قيمة إرجاع التعبير: x++ يُرجع القيمة القديمة قبل الزيادة، ++x يُرجع القيمة الجديدة بعد الزيادة. على سبيل المثال، var a = 5; var b = a++; يُعطي a=6، b=5; بينما var a = 5; var b = ++a; يُعطي a=6، b=6.

📖 ملخص

📝 تمارين

  1. اكتب برنامجًا يأخذ عددًا من ثلاثة أرقام (مثل 371) ويستخرج المئات والعشرات والآحاد باستخدام % و/، ثم يطبعها.
  2. بدون استخدام if...else، اكتب سطرًا واحدًا باستخدام العامل الثلاثي لتحديد ما إذا كانت سنة year سنة كبيسة، وعيّن النتيجة في isLeap (تلميح: قابلة للقسمة على 4 وليس على 100، أو قابلة للقسمة على 400).
  3. توقع نتائج التعبيرات التالية، ثم تحقق في وحدة تحكم المتصفح: [] == false، [] == ![]، null == 0. اشرح لماذا — إذا لم تستطع،🦄 تحتاج لمراجعة قواعد الإكراه الضمني لـ ==، ثم احتضن === بقوة.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%