انتقل إلى محتوى الدرس
الدرس 33
تاريخ النشر: تاريخ التحديث:
دورة جافا سكريبت

المعامل الشرطي الثلاثي في JavaScriptJavaScript Conditional Ternary Operator طريقة تجنب تداخل المعاملات الثلاثية، وفكرة التعبير الشرطي المختصر، وأجزاء المعامل الشرطي الثلاثة

اكتب التعبيرات الشرطية المختصرة بالمعامل الثلاثي (? :) في JavaScript: أتقن أركانه الثلاثة وإسناد ثوابت const المباشر وأولوية التنفيذ ومتى تُفضل جملة if/else.
أقسام الدرس
5
الأمثلة
2
اللغة
العربية
المشاهدات
4,682
محتوى الدرس
في هذا الدرس 5تصفّح المواضيع

لاحظت في الدرس السابق أن جملة if / else تعليمة تحكم لا تنتج قيمة بذاتها؛ فكنا نضطر لتعريف متغير قابل للتعديل let label = "" أولاً ثم إسناد القيمة داخلياً.

هنا يبرز جمال المعامل الشرطي الثلاثي (Ternary Operator) ? :؛ فهو المعامل الوحيد في JavaScript الذي يأخذ ثلاثة أطراف ويعمل كتعبير ينتج قيمة جاهزة فوراً يمكنك حفظها مباشرةً في ثابت const أو تضمينها داخل قالب نصي!

مخطط الأجزاء الثلاثة للمعامل الشرطي الثلاثي في JavaScript: الشرط وعلامة الاستفهام وقيمتي التحقق والبديل

تتكون الصياغة من ثلاثة أركان مرتبة بدقة: condition ? valueIfTrue : valueIfFalse. ويتميز المعامل الثلاثي بـالتقييم الكسول الذكي؛ فهو يحسب وينفذ الطرف الفائز فقط ويتجاهل حساب الطرف الآخر تماماً!

يتألق المعامل الثلاثي في نمطين يوميين بواجهات الويب: تهيئة ثابت const بقيمة شرطية في سطر واحد نظيف مثل const fee = isMember ? 0 : 15;، وتبديل صيغ المفرد والجمع أو شارات الحالة مباشرةً داخل القوالب النصية.

JavaScript
const isAnnual = true;
const itemsCount = 1;
const rate = isAnnual ? 8 : 12;
const noun = itemsCount === 1 ? 'seat' : 'seats';
document.getElementById('trn-out').textContent =
  `${itemsCount} ${noun} @ ${rate} USD/mo`;

ليس الهدف من المعامل الثلاثي إلغاء جملة if، بل لكل أداة موضعها الهندسي الصحيح:

الحالة البرمجيةالأداة المثلىالسبب الهندسي
اختيار إحدى قيمتين لإسنادها لثابت أو عرضهاالمعامل الثلاثي ? :يسمح باستخدام const مباشرةً في تعبير واحد أنيق
تنفيذ عدة أوامر وخطوات متتالية بالفرع الواحدجملة if / elseالأوامر المتعددة مكانها الطبيعي داخل أقواس الكتل { ... }
تشغيل إجراء عند التحقق فقط بلا مسار بديلجملة if مفردةالمعامل الثلاثي يجبرك على كتابة طرف بديل غير مستخدم

إن حشر معاملات ثلاثية متداخلة في سطر واحد مثل a ? b : c ? d : e قد يختصر سطرين لكنه يرهق عين القارئ ويجعل تتبع الأخطاء مهمة شاقة!

احصر استخدام المعامل الثلاثي دائماً في الاختيار الثنائي البسيط (علامة ? واحدة ونقطتان : واحدة)؛ ومتى تعددت الحالات إلى ثلاثة مسارات أو أكثر، انتقل فوراً إلى سلاسل if / else if الواضحة.

JavaScript
const stock = 4;
const badgeText = stock > 0 ? `${stock} left in stock` : 'Out of stock';
const badgeTone = stock > 0 ? 'Available' : 'Waitlist';
document.getElementById('stk-out').textContent =
  `[${badgeTone}] ${badgeText}`;
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

أتقنت في هذا الدرس طبيعة المعامل الشرطي الثلاثي ? : كتعبير منتج للقيمة، وأركانه الثلاثة الإلزامية وأولويته مع الجمع، ومتى يُفضل على if / else، وسبب تجنب السلاسل الثلاثية المتداخلة. الخطوة التالية: انتقل الآن إلى درس «جملة الاختيار في JavaScript» لمطابقة قيمة واحدة بعدة خيارات محددة بتنظيم أنيق!

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات3

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 3 مفهومةأول بطاقة، أول خطوة
01 Ternary Operator (? :) المعامل الشرطي الثلاثي (? :)
التعبير الشرطي ذو الأطراف الثلاثة في JavaScript لإرجاع إحدى قيمتين بناءً على تحقق الشرط.
للمراجعة
02 Expression vs Statement الفرق بين التعبير والجملة
ينتج التعبير قيمة قابلة للإسناد المباشر، بينما توجه الجملة سير التنفيذ دون إرجاع قيمة.
للمراجعة
03 Lazy Branch Evaluation التقييم الكسول للفرع الفائز
حساب وتنفيذ الطرف المختار فقط وتجاهل الطرف الآخر غير المختار بالكامل.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات2

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 2 مفهومةأول بطاقة، أول خطوة
01 DRY DRY
Do Not Repeat Yourself
مبدأ عدم تكرار الكود، ويتحقق بتغيير الكلمة المتبدلة فقط بالمعامل الثلاثي بدل تكرار الجملة كلها.
للمراجعة
02 UI UI
User Interface
واجهة المستخدم التي تُحسب فيها صيغ المفرد والجمع وألوان السمات غالباً بالمعامل الثلاثي.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. افتح مثال التسعير في محرر التجربة وغيّر قيمة itemsCount من 1 إلى 5 لملاحظة تحول الكلمة تلقائياً لصيغة الجمع.

  2. افحص التبويب الثاني في المحاكي لمشاهدة دور الأقواس في حماية المعامل الثلاثي عند استخدامه مع +.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

10أسئلة 2أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي10 أسئلة تنتظرك
01

لماذا يُسمى المعامل ? : بالمعامل «الثلاثي» (Ternary)؟

02

ما قيمة الثابت const tag = (15 >= 10) ? "Pass" : "Retry"؟

03

يجوز حذف نقطتي البديل : وما بعدها من المعامل الثلاثي كما نحذف else من جملة if.

04

ما الناتج الفعلي للتعبير "Cost: " + false ? 10 : 20 عند نسيان وضع الأقواس حول المعامل الثلاثي؟

05

بخلاف جملة if/else، يعمل المعامل الثلاثي كتعبير يمكن إسناد ناتجه مباشرةً لتهيئة ثابت const.

06

متى يُفضل استخدام كتلة if / else التقليدية بوضوح بدلاً من المعامل الثلاثي؟

07

في التعبير cond ? exprA : exprB، إذا تحقق الشرط cond فإن الطرف exprB لا يُنفذ إطلاقاً.

08

لماذا تحذر معايير جودة الكود من تداخل عدة معاملات ثلاثية في سطر واحد مثل a ? b : c ? d : e؟

09

أي معامل مختصر يغني بنظافة عن كتابة val !== null && val !== undefined ? val : "Default"؟

10

تسمح القوالب النصية بتضمين المعامل الثلاثي مباشرةً داخل أقواس التضمين ${ ... }.