معامل الفاصلة في JavaScript
معامل الفاصلة (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 | نعم | نعم |
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).
- معيار ECMAScript 5.1.
- معيار ECMAScript 1st Edition.