معامل الفاصلة في JavaScript

من موسوعة حسوب
مراجعة 15:43، 28 يناير 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات) (استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

معامل الفاصلة (comma operator) يُقدِّر القيم التي يجري عمليته عليها (من اليسار إلى اليمين) ويُعيد قيمة آخر قيمة.

البنية العامة

expr1, expr2, expr3...

expr1 و expr2 و expr3

أيّة تعابير (expressions) برمجية.

الوصف

يمكنك استخدام معامل الفاصلة عندما تريد تضمن عدِّة تعابير (expressions) في مكان يسمح بتعبيرٍ واحد؛ وأكثر استخدام شائع لهذا المعامل هو توفير أكثر من متغير لحلقة for.

أمثلة

استخدام معامل الفاصلة مع حلقة التكرار for

إذا كانت لدينا مصفوفة باسم a وهي مصفوفةٌ ثنائيةُ الأبعاد في كل بعدٍ منهما عشرة عناصر، فيمكننا أن نكتب الشيفرة الآتية لإنشاء حلقة تكرار for فيها متغيرين i و j:

for (var i = 0, j = 9; i <= 9; i++, j--)
  console.log('a[' + i + '][' + j + '] = ' + a[i][j]);

استخدام معامل الفاصلة عند إسناد قيم المتغيرات

لاحظ أنَّ الفاصلة ضمن تعابير برمجية مثل var قد يبدو أنها لا تملك أثر معامل الفاصلة نفسه، ذلك لأنها لا توجد ضمن تعبير.

سنضبط قيمة a في المثال الآتي إلى قيمة b = 3 (وهي القيمة 3)، لكن التعبير c = 4 ستُقدَّر قيمته وستُطبَع إلى الطرفية (console، وقيمته هي 4)؛ السبب وراء هذا السلوك هو أولوية المعاملات.

a = b = 3, c = 4; // Returns 4 in console
console.log(a); // 3 (left-most)

x = (y = 5, z = 6); // Returns 6 in console
console.log(x); // 6 (right-most)

لاحظ أنَّ معامل الفاصلة يختلف تمامًا عن الفواصل الموجودة في المصفوفات والكائنات ووسائط ومعاملات الدوال.

معالجة قيمة تعبيرٍ ما ثم إعادتها

مثالٌ آخر عن استخدام معامل الفاصلة هو معالجة تعبيرٍ ما قبل إعادته من الدالة؛ فكما ذكرنا سابقًا: ستُعاد قيمة آخر تعبير لكن ستُقدَّر قيمة كل التعابير:

function myFunc() {
  var x = 0;

  return (x += 1, x); // كما لو استخدمنا ++x;
}

دعم المتصفحات

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي نعم نعم 3 نعم نعم

مصادر ومواصفات