انتقل إلى محتوى الدرس
الدرس 16
دورة جافا سكريبت

أسبقية تنفيذ المعاملات في JavaScriptOperator Precedence in JavaScript

أتقن أسبقية تنفيذ المعاملات في JavaScript واتجاه الترابط: أولوية الأقواس الهلالية، تدرج الأسس والضرب والجمع والمقارنة والإسناد، وتفكيك المعادلات المركبة خطوة بخطوة.
أقسام الدرس
6
الأمثلة
2
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
6,674
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

ما ناتج المعادلة 10 + 5 * 2؟ هل هو 30 أم 20؟ تماماً كما في قواعد الجبر، لا ينفذ محرك JavaScript المعاملات المختلطة عشوائياً من اليسار لليمين، بل يخضع لجدول أسبقية المعاملات (Operator Precedence)؛ ولأن الضرب يعلو على الجمع في الرتبة، تُحسب 5 * 2 أولاً لتعطي 10 ثم تُجمع مع 10 ليكون الناتج الصحيح 20!

مخطط سلم أسبقية تنفيذ المعاملات في JavaScript من الأقواس الهلالية حتى معامل الإسناد

تتربع الأقواس الهلالية (...) على قمة هرم الأولويات في لغة JavaScript بلا منازع؛ فعند كتابة (10 + 5) * 2 نجبر المحرك على إنجاز ما بداخل القوسين أولاً (15) ثم ضربه في 2 لينتج 30، كما يُستحب استخدامها لتوضيح نية الكود للقارئ دون إجباره على حفظ رتب الأولويات.

JavaScript
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}`;

داخل العمليات الحسابية الخالصة دون أقواس، يلتزم المحرك بالتسلسل الهرمي الرياضي التالي من الأعلى إلى الأدنى:

  1. المعاملات الأحادية والعدادات: مثل x++ ثم ++x و+x و-x وtypeof.
  2. الرفع إلى أس **: يتقدم على الضرب؛ ففي 3 * 2 ** 3 يُحسب 2 ** 3 = 8 أولاً ثم يُضرب في 3 لينتج 24!
  3. طبقة الضرب والقسمة والباقي: تتساوى * و/ و% في المرتبة نفسها.
  4. طبقة الجمع والطرح: تتساوى + و- في المرتبة التالية لهما.

كيف يحسم المحرك الترتيب عند التقاء معاملين لهما نفس رتبة الأولوية تماماً مثل 20 - 8 - 3 أو 2 ** 3 ** 2؟ يحكم ذلك اتجاه الترابط (Associativity):

مجموعة المعاملاتاتجاه الترابطمثال تطبيقيتفكيك الخطوات والناتج
الضرب والقسمة والجمع والطرحمن اليسار لليمين20 - 8 - 3(20 - 8) - 3 تساوي 9
معامل الأسس **من اليمين لليسار2 ** 3 ** 22 ** (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!

لتفكيك أي معادلة مركبة بثقة تامة دون خطأ، اختزل في كل خطوة العملية صاحبة الأسبقية الأعلى فقط واستبدلها بناتجها حتى تصل إلى القيمة النهائية الواحدة:

JavaScript
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

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

0 / 4 مفهومةأول بطاقة، أول خطوة
01 Operator Precedence أسبقية المعاملات
التسلسل الهرمي القواعدي الذي يحدد أي معامل يُنفذ أولاً عند اجتماع معاملات مختلفة في تعبير واحد.
للمراجعة
02 Grouping Operator (...) الأقواس التجميعية (...)
أقواس تمتلك أعلى أولوية مطلقة في اللغة وتجبر المحرك على حساب ما بداخلها قبل ما يحيط بها.
للمراجعة
03 Associativity اتجاه الترابط Associativity
الاتجاه المعتمد يساراً أو يميناً لحسم ترتيب التنفيذ عندما يتساوى معاملان في رتبة الأولوية.
للمراجعة
04 Right-Associative الترابط من اليمين لليسار
سلوك التجميع الخاص بمعامل الأسس ** ومعامل الإسناد = حيث يبدأ التنفيذ من أقصى اليمين باتجاه اليسار.
للمراجعة

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

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

الاختصارات2

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

0 / 2 مفهومةأول بطاقة، أول خطوة
01 PEMDAS PEMDAS
Parentheses, Exponents, Multiplication/Division, Addition/Subtraction
الاختصار الرياضي الشهير لترتيب العمليات: الأقواس فالأسس فالضرب والقسمة فالجمع والطرح.
للمراجعة
02 RHS RHS
Right-Hand Side Expression
التعبير الواقع يمين علامة = والذي يُحسب بالكامل أولاً نظراً لانخفاض أولوية معامل الإسناد.
للمراجعة

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

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

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

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

0/2مهام منجزة
  1. اختر التبويب الثاني في المحاكي لتتبع كيف تُفكك 2 ** 3 ** 2 من اليمين لتنتج 512 بدلاً من 64.

  2. افتح مثال تتبع الأولويات في محرر التجربة وتحقق من الناتج 20 ثم جرّب إزالة القوسين حول 18 - 6 لملاحظة الفرق.

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

مساحة التحدي

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

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

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

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

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

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

ما الناتج النهائي لتقييم العبارة 6 + 4 * 5 في JavaScript؟

02

أي عنصر صياغي يمتلك أعلى رتبة أسبقية على الإطلاق في معادلات JavaScript؟

03

نظراً لأن معامل الأسس ** يترابط من اليمين لليسار، فما ناتج 2 ** 3 ** 2؟

04

معامل الطرح (-) يترابط من اليسار لليمين، لذا تُحسب 20 - 5 - 3 على صورة (20 - 5) - 3 وتساوي 12.

05

ما الناتج الصحيح لتقييم التعبير 3 * 2 ** 3؟

06

إضافة الأقواس التوضيحية في المعادلات تبطئ سرعة تنفيذ كود JavaScript وقت التشغيل بشدة.

07

في الجملة const flag = 10 + 5 > 12; أي عملية تُنفذ في الخطوة الأخيرة؟

08

لتساوي أولوية القسمة والضرب وترابطهما يسارياً، ما ناتج 24 / 4 * 2؟

09

تُنفذ العمليات الحسابية (+ و*) دائماً قبل معاملات المقارنة الرقمية (> و<).

10

ما الناتج الحسابي للعبارة (6 + 4) * 5 عند إحاطة الجمع بالأقواس؟