জাভাস্ক্রিপ্টে প্রিফিক্স এবং পোস্টফিক্স টাইপ
আসলে ইনক্রিমেন্ট এবং ডিক্রিমেন্ট অপারেশন
দুইভাবে লেখা যায়। আসুন
++ এর উদাহরণে এই পদ্ধতিগুলো দেখি,
আর -- এর ক্ষেত্রেও সবকিছু একই রকম হবে।
প্রথম পদ্ধতিতে অপারেশনটি ভেরিয়েবলের নামের পরে
লেখা হয়, এভাবে: a++, আর
দ্বিতীয় পদ্ধতিতে - ভেরিয়েবলের নামের আগে,
এভাবে: ++a।
প্রথম ফর্মটিকে পোস্টফিক্স বলা হয়, আর দ্বিতীয়টিকে - প্রিফিক্স। আসুন দেখি, কোন ক্ষেত্রে এই দুই ফর্মের মধ্যে পার্থক্য দেখা যায়।
ধরি আমাদের কাছে alert(a++) এবং
alert(++a) কোড আছে।
alert(a++) ক্ষেত্রে ভেরিয়েবলটি প্রথমে
আউটপুট হবে, তারপর এক দ্বারা বাড়বে,
আর alert(++a) ক্ষেত্রে ভেরিয়েবল প্রথমে
এক দ্বারা বাড়বে, তারপর আউটপুট হবে।
নিচের উদাহরণে প্রথম alert আউটপুট করবে
0, কারণ প্রথমে স্ক্রিনে আউটপুট কাজ করবে,
তারপর ভেরিয়েবল বাড়বে:
let num = 0;
alert(num++); // আউটপুট করবে 0
alert(num); // আউটপুট করবে 1
এবং এখন ভেরিয়েবল প্রথমে বাড়বে, তারপর স্ক্রিনে আউটপুট হবে:
let num = 0;
alert(++num); // আউটপুট করবে 1 - ভেরিয়েবল সাথে সাথে বেড়ে গেছে
এই ধরনের আচরণ শুধু স্ক্রিনে আউটপুটের জন্যই নয়, বরং অ্যাসাইনমেন্টের জন্যও প্রযোজ্য:
let num1 = 0;
let num2 = num1++; // num2 ভেরিয়েবলে 0 লেখা হবে
alert(num2); // আউটপুট করবে 0
alert(num1); // আউটপুট করবে 1 - num2 এ লেখার পর num1 ভেরিয়েবল পরিবর্তিত হয়েছে
এবং এখন পোস্টফিক্স ফর্মকে প্রিফিক্স ফর্মে পরিবর্তন করি:
let num1 = 0;
let num2 = ++num1; // num2 ভেরিয়েবলে 1 লেখা হবে
alert(num2); // আউটপুট করবে 1
যদি আমাদের অপারেশন একটি আলাদা লাইনে নির্বাহ করা হয়, তবে প্রিফিক্স এবং পোস্টফিক্স ফর্মের মধ্যে কোন পার্থক্য নেই:
let num = 0;
++num;
num++;
alert(num); // আউটপুট করবে 2
কód চালু না করে, নির্ধারণ করুন, স্ক্রিনে কী আউটপুট হবে:
let num = 3;
alert(++num);
কód চালু না করে, নির্ধারণ করুন, স্ক্রিনে কী আউটপুট হবে:
let num = 3;
alert(num++);
কód চালু না করে, নির্ধারণ করুন, স্ক্রিন上 কী আউটপুট হবে:
let num = 3;
alert(--num);
কód চালু না করে, নির্ধারণ করুন, স্ক্রিন上 কী আউটপুট হবে:
let num = 3;
alert(num--);
কód চালু না করে, নির্ধারণ করুন, স্ক্রিন上 কী আউটপুট হবে:
let num1 = 3;
let num2 = ++num1;
alert(num1);
alert(num2);
কód চালু না করে, নির্ধারণ করুন, স্ক্রিন上 কী আউটপুট হবে:
let num1 = 3;
let num2 = num1++;
alert(num1);
alert(num2);
কód চালু না করে, নির্ধারণ করুন, স্ক্রিন上 কী আউটপুট হবে:
let num1 = 3;
let num2 = --num1;
alert(num1);
alert(num2);
কód চালু না করে, নির্ধারণ করুন, স্ক্রিন上 কী আউটপুট হবে:
let num1 = 3;
let num2 = num1--;
alert(num1);
alert(num2);
কód চালু না করে, নির্ধারণ করুন, স্ক্রিন上 কী আউটপুট হবে:
let num1 = 3;
num1++;
let num2 = num1--;
alert(num1++);
alert(--num2);