في هذا الدرس 6تصفّح المواضيع
ما ناتج المعادلة 10 + 5 * 2؟ هل هو 30 أم 20؟ تماماً كما في قواعد الجبر، لا ينفذ محرك JavaScript المعاملات المختلطة عشوائياً من اليسار لليمين، بل يخضع لجدول أسبقية المعاملات (Operator Precedence)؛ ولأن الضرب يعلو على الجمع في الرتبة، تُحسب 5 * 2 أولاً لتعطي 10 ثم تُجمع مع 10 ليكون الناتج الصحيح 20!
تتربع الأقواس الهلالية (...) على قمة هرم الأولويات في لغة JavaScript بلا منازع؛ فعند كتابة (10 + 5) * 2 نجبر المحرك على إنجاز ما بداخل القوسين أولاً (15) ثم ضربه في 2 لينتج 30، كما يُستحب استخدامها لتوضيح نية الكود للقارئ دون إجباره على حفظ رتب الأولويات.
const basePrice = 100, addon = 20, seats = 3;
const ungrouped = basePrice + addon * seats;
const grouped = (basePrice + addon) * seats;
document.getElementById('prec-out').textContent =
`Without (): ${ungrouped} | With (): ${grouped}`;
داخل العمليات الحسابية الخالصة دون أقواس، يلتزم المحرك بالتسلسل الهرمي الرياضي التالي من الأعلى إلى الأدنى:
- المعاملات الأحادية والعدادات: مثل
x++ثم++xو+xو-xوtypeof. - الرفع إلى أس
**: يتقدم على الضرب؛ ففي3 * 2 ** 3يُحسب2 ** 3 = 8أولاً ثم يُضرب في 3 لينتج24! - طبقة الضرب والقسمة والباقي: تتساوى
*و/و%في المرتبة نفسها. - طبقة الجمع والطرح: تتساوى
+و-في المرتبة التالية لهما.
كيف يحسم المحرك الترتيب عند التقاء معاملين لهما نفس رتبة الأولوية تماماً مثل 20 - 8 - 3 أو 2 ** 3 ** 2؟ يحكم ذلك اتجاه الترابط (Associativity):
| مجموعة المعاملات | اتجاه الترابط | مثال تطبيقي | تفكيك الخطوات والناتج |
|---|---|---|---|
| الضرب والقسمة والجمع والطرح | من اليسار لليمين | 20 - 8 - 3 | (20 - 8) - 3 تساوي 9 |
معامل الأسس ** | من اليمين لليسار | 2 ** 3 ** 2 | 2 ** (3 ** 2) أي 2 ** 9 = 512 (وليس 64!) |
معامل الإسناد = والأحادية | من اليمين لليسار | a = b = 10 | تُسند 10 إلى b أولاً ثم إلى a |
عند اجتماع الحساب والمقارنة والمنطق والإسناد في سطر واحد، يطبق المحرك هذا الترتيب الكلي البديهي: 1. الأقواس ← 2. العمليات الحسابية ← 3. المقارنات مثل > و< ← 4. الروابط المنطقية ← 5. الإسناد = في النهاية.
ولهذا السبب تحسب الجملة const passed = 40 + 15 > 50; ناتج الجمع 55 أولاً، ثم تقارن 55 > 50 لتنتج true، وأخيراً تودعها داخل الثابت passed!
لتفكيك أي معادلة مركبة بثقة تامة دون خطأ، اختزل في كل خطوة العملية صاحبة الأسبقية الأعلى فقط واستبدلها بناتجها حتى تصل إلى القيمة النهائية الواحدة:
const stepTrace = (18 - 6) / 3 + 2 ** 3 * 2;
const rightPower = 2 ** 2 ** 3;
document.getElementById('trace-out').textContent =
`Trace Result: ${stepTrace} | 2**2**3 = ${rightPower}`;
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
أتقنت في هذا الدرس سلم أسبقية المعاملات في JavaScript، والأولوية المطلقة للأقواس (...)، والفرق بين الترابط اليساري واليميني، وتفكيك المعادلات المختلطة خطوة بخطوة. الخطوة التالية: انتقل الآن إلى درس «معاملات الإسناد والتعيين في JavaScript» لإتقان معاملات التحديث المركبة المختصرة.
سجّل الدخول لحفظ تقدمك
تابع إنجاز المواضيع والمصطلحات والمهام، وكمّل من آخر خطوة على أي جهاز.
المصطلحات4
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 Operator Precedence أسبقية المعاملات
- التسلسل الهرمي القواعدي الذي يحدد أي معامل يُنفذ أولاً عند اجتماع معاملات مختلفة في تعبير واحد.
- للمراجعة
- 02 Grouping Operator (...) الأقواس التجميعية (...)
- أقواس تمتلك أعلى أولوية مطلقة في اللغة وتجبر المحرك على حساب ما بداخلها قبل ما يحيط بها.
- للمراجعة
- 03 Associativity اتجاه الترابط Associativity
- الاتجاه المعتمد يساراً أو يميناً لحسم ترتيب التنفيذ عندما يتساوى معاملان في رتبة الأولوية.
- للمراجعة
- 04 Right-Associative الترابط من اليمين لليسار
- سلوك التجميع الخاص بمعامل الأسس ** ومعامل الإسناد = حيث يبدأ التنفيذ من أقصى اليمين باتجاه اليسار.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
الاختصارات2
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 PEMDAS PEMDAS
- Parentheses, Exponents, Multiplication/Division, Addition/Subtraction
- الاختصار الرياضي الشهير لترتيب العمليات: الأقواس فالأسس فالضرب والقسمة فالجمع والطرح.
- للمراجعة
- 02 RHS RHS
- Right-Hand Side Expression
- التعبير الواقع يمين علامة = والذي يُحسب بالكامل أولاً نظراً لانخفاض أولوية معامل الإسناد.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
مهامك قبل الاختبار
خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.
-
اختر التبويب الثاني في المحاكي لتتبع كيف تُفكك 2 ** 3 ** 2 من اليمين لتنتج 512 بدلاً من 64.
-
افتح مثال تتبع الأولويات في محرر التجربة وتحقق من الناتج 20 ثم جرّب إزالة القوسين حول 18 - 6 لملاحظة الفرق.
تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.
اختبر فهمك.
ووصلها للإتقان.
كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.
أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.
الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.