Operator Precedence

1️⃣ تعریف Operator Precedence (اولویت عملگرها)
در جاوااسکریپت، عملگرها اولویت اجرای متفاوتی دارند. یعنی بعضی عملگرها قبل از بقیه محاسبه می‌شوند.

  • می‌توان با پرانتز () اولویت را تغییر داد.

2️⃣ جدول اولویت عملگرها

رتبهعملگرهاتوضیح
۱()پرانتز – ابتدا اجرا می‌شود
۲++, --, +, -, ~, !عملگرهای پیش‌افزایشی، پیش‌کاهشی، مثبت و منفی، NOT
۳**توان
۴*, /, %ضرب، تقسیم، باقی‌مانده
۵+, -جمع و تفریق
۶<<, >>, >>>شیفت بیتی
۷<, <=, >, >=, in, instanceofمقایسه
۸==, !=, ===, !==برابر و نامساوی
۹&AND بیتی
۱۰^XOR بیتی
۱۱``
۱۲&&AND منطقی
۱۳`
۱۴??Nullish coalescing
۱۵? :شرطی (ternary)
۱۶=, +=, -=, *=, /=, %= ...Assignment operators
۱۷,عملگر کاما (اجرا از چپ به راست)


3️⃣ مثال‌های عملی

let x = 5 + 3 * 2; console.log(x); // 11 → ضرب قبل از جمع let y = (5 + 3) * 2; console.log(y); // 16 → پرانتز اولویت را تغییر داد let a = true || false && false; console.log(a); // true → && قبل از || اجرا می‌شود

4️⃣ نکات مهم

  • پرانتز ساده‌ترین راه برای کنترل اولویت عملگرها است.

  • عملگرهای ریاضی معمولاً از بالا به پایین: توان → ضرب/تقسیم → جمع/تفریق.

  • عملگرهای منطقی: !&&||??.

  • هنگام ترکیب Assignment با سایر عملگرها، ابتدا محاسبه سمت راست انجام می‌شود و سپس نتیجه به متغیر اختصاص داده می‌شود:

let x = 10; x += 5 * 2; // x = 10 + (5*2) → x = 20