اولویت عملگرها (Operator Precedence)
«اولویت عملگرها» یعنی ترتیب انجام عملیات ها. مثل ریاضی مدرسه، ضرب و تقسیم جلوتر از جمع و تفریق هستند. اگر ترتیب را بلد باشی، نتیجه محاسباتت همیشه درست می شود.
ترتیب انجام عملیات
«اولویت (Precedence)» یعنی کدام عملگر زودتر اجرا می شود. «ارتباط پذیری (Associativity)» یعنی وقتی اولویت برابر است، از چپ به راست یا برعکس حساب کنیم.
let x = 100 + 50 * 3;
پرانتز همیشه اول
پرانتز «گروه بندی (Grouping)» می کند. هرچه داخل پرانتز است، اول انجام می شود. این مثل حل قدم به قدم مسئله در برگه امتحان است.
let x = (100 + 50) * 3;
وقتی اولویت برابر است
وقتی دو عملگر هم اولویت باشند، جاوااسکریپت از چپ به راست حساب می کند. این را «ارتباط پذیری چپ به راست» می گویند.
let x = 100 / 50 * 3;
نگاه سریع به جدول اولویت
طبق منبع، ترتیب کلی این گونه است: پرانتز و فراخوانی تابع بالا هستند، بعد عملگرهای یگانی مثل ! و typeof، سپس توان **، بعد ضرب/تقسیم/باقی مانده، بعد جمع/تفریق، سپس شیفت ها، سپس مقایسه و برابری، بعد منطقی ها && و || و ??، بعد شرطی سه تایی، و در پایان انتساب ها.
نکته: اگر تردید داری، از پرانتز استفاده کن تا نیتت واضح شود.
گام های عملی
- عبارتت را خط به خط بنویس.
- بالاترین اولویت را پیدا کن.
- همان بخش را حساب کن و تکرار کن.
جمع بندی سریع
- پرانتز همیشه برنده است.
- ضرب/تقسیم قبل از جمع/تفریق.
- هم اولویت ها چپ به راست.
- پرانتز ابهام را صفر می کند.
برای ادامه مسیر، به مرجع عملگرها سر بزن. همچنین راهنمای اولویت عملگرها را به عنوان لنگر داخلی نگه دار.