জাভাস্ক্রিপ্ট অপারেটর প্রিসিডেন্স (Operator Precedence) বিস্তারিত টিউটোরিয়াল
জাভাস্ক্রিপ্টে বিভিন্ন অপারেটর আছে যেমন যোগ (+), বিয়োগ (-), গুণ (*), ভাগ (/), লজিক্যাল অপারেটর ইত্যাদি। যখন এক্সপ্রেশনগুলোতে একাধিক অপারেটর থাকে, তখন কোন অপারেটর আগে হিসাব হবে সেটা নির্ধারণ করে অপারেটর প্রিসিডেন্স।
অর্থাৎ, অপারেটর প্রিসিডেন্স বলে দেয়, কোন অপারেটর কত উচ্চ অগ্রাধিকার পায় এবং কোনগুলো আগে সম্পাদিত হবে। যদি একই প্রিসিডেন্স থাকে, তবে অ্যাসোসিয়েটিভিটি (বাম থেকে ডান বা ডান থেকে বাম) বলে দেয় কোন দিক থেকে এক্সপ্রেশনগুলো এক্সিকিউট হবে।
অপারেটর প্রিসিডেন্স মান
নীচের টেবিলটিতে জাভাস্ক্রিপ্ট অপারেটরগুলো তাদের প্রিসিডেন্স ভ্যালুসহ সাজানো হয়েছে, যেখানে উচ্চ মানের অপারেটরগুলো আগে এক্সিকিউট হয়:
| প্রিসিডেন্স মান (Precedence) | অপারেটর (Operator) | বর্ণনা (Description) | অ্যাসোসিয়েটিভিটি (Associativity) |
|---|---|---|---|
| 21 | () (Parentheses) | এক্সপ্রেশন গ্রুপিং | Left to Right |
| 20 | ++ (postfix), — (postfix) | পোস্টফিক্স ইনক্রিমেন্ট/ডিক্রিমেন্ট | Left to Right |
| 19 | ++ (prefix), — (prefix), + (unary plus), – (unary minus), ~, ! | ইউনারি অপারেটর | Right to Left |
| 17 | *, /, % | গুণ, ভাগ, ভাগশেষ | Left to Right |
| 16 | +, – | যোগ, বিয়োগ | Left to Right |
| 14 | <<, >>, >>> | বিট শিফট অপারেটর | Left to Right |
| 13 | <, <=, >, >= | তুলনা অপারেটর | Left to Right |
| 12 | ==, !=, ===, !== | সমতা এবং অসমতা | Left to Right |
| 11 | & | বিটওয়াইজ AND | Left to Right |
| 10 | ^ | বিটওয়াইজ XOR | Left to Right |
| 9 | | | বিটওয়াইজ OR | Left to Right |
| 8 | && | লজিক্যাল AND | Left to Right |
| 7 | || | লজিক্যাল OR | Left to Right |
| 6 | ?: | টার্নারি অপারেটর | Right to Left |
| 5 | =, +=, -=, *=, /=, %=, <<=, >>=, >>>=, &=, ^=, |= | অ্যাসাইনমেন্ট অপারেটর | Right to Left |
| 4 | yield | জেনারেটর ফাংশন এর জন্য | Right to Left |
⚡ উদাহরণ এবং ব্যাখ্যা
<script>
// উদাহরণ ১: যোগ এবং গুণ অপারেটর
var x = 5 + 3 * 2; // গুণ আগে হবে → 3*2=6, তারপর 5+6=11
console.log(x); // 11
// উদাহরণ ২: ব্র্যাকেট ব্যবহার করে অগ্রাধিকার পরিবর্তন
var y = (5 + 3) * 2; // ব্র্যাকেট আগে হবে → 8*2=16
console.log(y); // 16
// উদাহরণ ৩: অ্যাসাইনমেন্ট এবং যোগ
var a = 10;
var b = 20;
var c = a = b + 5; // প্রথমে b+5=25, তারপর a=25, শেষে c=25
console.log(a, c); // 25 25
// উদাহরণ ৪: ইউনারি প্লাস এবং মিনাস
var d = – -5; // প্রথমে ডান থেকে বাম → -5, তারপর আবার – (-5) → 5
console.log(d); // 5
// উদাহরণ ৫: লজিক্যাল অপারেটর
var e = true && false || true;
// && আগে হবে, তারপর ||
console.log(e); // true
</script>
উপসংহার
অপারেটর প্রিসিডেন্স জেনে আপনি জাভাস্ক্রিপ্ট এক্সপ্রেশন গুলো কীভাবে এগিয়ে যাবে তা বুঝতে পারবেন এবং ভুল কমাতে পারবেন। বিশেষ করে জটিল এক্সপ্রেশনগুলোতে ব্র্যাকেট ব্যবহার করে স্পষ্ট করা খুব জরুরি।