| العامل | الاسم | مثال | النتيجة |
|---|---|---|---|
| + | جمع | 2 + 3 | 5 |
| % | باقي القسمة | 10 % 3 | 1 |
| === | مساواة صارمة | 5 === "5" | false |
| && | AND منطقي | true && false | false |
| ?? | دمج صفري | null ?? "بديل" | "بديل" |
العوامل (Operators) هي رموز تُجري عمليات على القيم والمتغيرات، وتنقسم لعدة فئات رئيسية في جافاسكريبت. عوامل الحساب (Arithmetic) تشمل + للجمع، - للطرح، * للضرب، / للقسمة، % لباقي القسمة (Modulus) وهي مفيدة جداً لمعرفة إذا كان رقم زوجياً أو فردياً، و** للأس (Exponentiation).
عوامل المقارنة (Comparison) تُعيد قيمة منطقية true أو false: == تقارن القيمة فقط بعد تحويل الأنواع، بينما === تقارن القيمة والنوع معاً بدون أي تحويل — لذا يُنصح دائماً باستخدام === و!== لتجنب المفاجآت. توجد أيضاً >، <، >=، <= للمقارنات العددية.
عوامل المنطق (Logical) هي && (AND) وتُعيد true فقط إذا كان الطرفان صحيحين، و|| (OR) وتُعيد true إذا كان أحد الطرفين صحيحاً، و! (NOT) لعكس القيمة المنطقية. تُستخدم هذه العوامل بكثرة في الشروط المركبة.
عوامل التعيين (Assignment) تبدأ بـ = للتعيين البسيط، وتشمل اختصارات مثل += وَ-= وَ*= وَ/= التي تُجري العملية وتُعيّن الناتج في خطوة واحدة. أخيراً، عامل الدمج الصفري ?? (Nullish Coalescing) يُعيد القيمة اليمنى فقط إذا كانت القيمة اليسرى null أو undefined تحديداً — وهو مختلف عن || الذي يتفعّل مع أي قيمة "زائفة" مثل 0 أو النص الفارغ.
| 1 | // حسابية |
| 2 | 5 + 3; 5 - 3; 5 * 3; 5 / 3; 5 % 3; 5 ** 2; |
| 3 | |
| 4 | // مقارنة |
| 5 | 5 === "5"; // false (نوع مختلف) |
| 6 | 5 == "5"; // true (تحويل تلقائي) |
| 7 | |
| 8 | // منطقية |
| 9 | true && false; // false |
| 10 | true || false; // true |
| 11 | !true; // false |
| 12 | |
| 13 | // دمج صفري |
| 14 | const القيمة = null ?? "افتراضي"; // "افتراضي" |
مثال 1: أمثلة عملية على العوامل الحسابية
| 1 | // استخدام % لمعرفة الزوجي والفردي |
| 2 | function هل_زوجي(رقم) { |
| 3 | return رقم % 2 === 0; |
| 4 | } |
| 5 | console.log(هل_زوجي(4)); // true |
| 6 | console.log(هل_زوجي(7)); // false |
| 7 | |
| 8 | // عوامل التعيين المختصرة |
| 9 | let عداد = 10; |
| 10 | عداد += 5; // 15 |
| 11 | عداد *= 2; // 30 |
مثال 2: الفرق بين || و ?? (Nullish Coalescing)
| 1 | // الفرق بين || و ?? |
| 2 | const مدخل1 = 0; |
| 3 | console.log(مدخل1 || "قيمة بديلة"); // "قيمة بديلة" (0 قيمة زائفة) |
| 4 | console.log(مدخل1 ?? "قيمة بديلة"); // 0 (0 ليست null أو undefined) |
| 5 | |
| 6 | const مدخل2 = null; |
| 7 | console.log(مدخل2 ?? "قيمة بديلة"); // "قيمة بديلة" |