اولویت بندی اپراتورها در زبان جاوا اسکریپت

اولویت بندی اپراتورها در زبان جاوا اسکریپت


اپراتورها از نظر اولویت و تقدم، به گروه های متفاوتی دسته بندی می شوند که هر کدام از این گروه ها دارای یک شماره از 0 تا 19 است. این شماره، نشان دهنده ی اولویت آن اپراتور است و هر چه شماره کوچکتر باشد، آن اپراتور از اولویت بالاتری برخوردار است. بدین ترتیب اپراتوری که دارای اولویت 0 است، از تمامی دیگر اپراتورها در یک اکسپرشن، اولویت بالاتری دارد و می بایست ابتدا به سراغ آن برویم. به همین روال، اپراتوری با شماره ی اولویت 19، در آخرین رده قرار دارد. در ادامه با لیستی از اپراتورهای جاوا اسکریپت آشنا خواهیم شد:

اپراتور کاربرد اولویت جهت تخصیص دهی مثال
( ) گروه بندی اکسپرشن ها 0 (1 + 3)
. دسترسی به پراپرتی 1 چپ به راست myCar.color
[ ] دسترسی به اندیس های یک آرایه 1 چپ به راست [thingsToDo[4
new ساخت آبجکت با لیستی از آرگومان ها 1 (“new Car (“blue
function فراخوانی فانکشن 2 چپ به راست (function addNumbers (1, 2
new ساخت آبجکت بدون لیستی از آرگومان ها 2 راست به چپ new Car
++ افزایش پسوندی 3 ++number
کاهش پسوندی 3 –number
! NOT منطقی (ضد یا خلاف 4 راست به چپ value!
‍‍~ NOT بیتی (در مدارهای منطقی) 4 راست به چپ value~
منفی سازی 4 راست به چپ aNumber-
++ افزایش پیشوندی 4 راست به چپ aNumber++
کاهش پیشوندی 4 راست به چپ aNumber–
typeof مشخص کننده ی نوع آبجکت ۴ راست به چپ typeof myVar
void دستور دادن به مرورگر برای انجام ندادن هیج کاری 4 راست به چپ (void(0
delete حذف 4 راست به چپ delete object.property
* ضرب 5 چپ به راست a = 3 * 7
/ تقسیم 5 چپ به راست a = 3 / 7
% باقیمانده 5 چپ به راست a = 7 % 3
+ جمع 6 چپ به راست a = 7 + 3
تفریق 6 چپ به راست a = 3 – 7
>> شیفت بیتی به چپ 7 چپ به راست a = 3 << 7
<< شیفت بیتی به راست 7 چپ به راست a = 3 >> 7
<<< شیفت بیتی به راست (با فلگ 0) 7 چپ به راست a = 3 >>> 7
> کوچکتر 8 چپ به راست a < b
=> کوچکتر مساوی 8 چپ به راست a <= b
< بزرگتر 8 چپ به راست a > b
=< بزرگتر مساوی 8 چپ به راست a >= b
in بخشی از 8 چپ به راست value in values
instanceof آبجکتی از ۸ چپ به راست myBMW instanceof car
== برابری 9 چپ به راست “3” == 3
=! نابرابری 9 چپ به راست “3” =! 3
=== برابری مطلق 9 چپ به راست “3” === 3
==! نابرابری مطلق 9 چپ به راست “3” ==! 3
& AND بیتی 10 چپ به راست r = a & b
^ XOR بیتی 11 چپ به راست r = a ^ b
| OR بیتی 12 چپ به راست r = a | b
&& AND منطقی 13 چپ به راست a && b
|| OR منطقی 14 چپ به راست a || b
: ? ساختار شرطی 15 راست به چپ a ? 3 : 7
= مقداردهی 16 راست به چپ a = 3
=+ مقداردهی 16 راست به چپ a += 3
=- مقداردهی 16 راست به چپ a -= 3
=* مقداردهی 16 راست به چپ a *= 3
=/ مقداردهی 16 راست به چپ a /= 3
=% مقداردهی 16 راست به چپ a %= 3
=>> مقداردهی 16 راست به چپ a <<= 3
=<< مقداردهی 16 راست به چپ a >>= 3
=<<< مقداردهی 16 راست به چپ a >>>= 3
=& مقداردهی 16 راست به چپ a &= 3
=^ مقداردهی 16 راست به چپ a ^= 3
=| مقداردهی 16 راست به چپ a |= 3
yield ارائه خروجی مقطعی 17 راست به چپ [yield [expression
, کاما / ترتیب 18 چپ به راست a+b, c+d

اگر یک اکسپرشن دارای چند اپراتور با شماره اولویت های یکسان بود، آن وقت جهت تخصیص دهی آن اپراتورها مدنظر قرار می گیرد و جاوا اسکریپت با توجه به آن، ترتیب اجرای عملیات را تشخیص می دهد. جهت تخصیص دهی بدین معنا است که اپراتورها از کدام طرف باید اجرا شده یا آن که مورد ارزیابی قرار بگیرند. در ادامه ی این فصل، برخی از این اپراتورها که به توضیح بیشتر نیاز دارند را به صورت دقیق تر بررسی خواهیم کرد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *