অপ্রত্যাশিত ফলাফলের ঝুঁকি
ইনক্রিমেন্ট (++) এবং ডিক্রিমেন্ট (--) অপারেটরগুলো এড়াতে হয় কারণ এগুলো অপ্রত্যাশিত ফলাফল দিতে পারে।
অ্যাসাইনমেন্ট স্টেটমেন্টে সমস্যা
<html>
<body>
<script>
var a = 5;
var b = ++a; // Pre-increment: a=6, b=6
var c = a++; // Post-increment: c=6, a=7
var d = ++c; // Pre-increment: c=7, d=7
document.write(a + "<br>"); // 7
document.write(b + "<br>"); // 6
document.write(c + "<br>"); // 7
document.write(d + "<br>"); // 7
</script>
</body>
</html>
হোয়াইটস্পেস সমস্যা
a = b = c = 1; ++a; // a = 2 b--; // b = 0 c; // c = 1 // কিন্তু হোয়াইটস্পেস থাকলে: a = b = c = 1; ++ a; // 파싱 এরর বা অনিচ্ছাকৃত আচরণ b --; // সমস্যা c ; // অপ্রয়োজনীয় সেমিকোলন
সেরা অনুশীলন
// স্পষ্ট এবং পঠনযোগ্য
a = a + 1;
b = b - 1;
// বা সংক্ষিপ্ত কিন্তু স্পষ্ট
a += 1;
b -= 1;
// লুপে (স্ট্যান্ডার্ড)
for (let i = 0; i < 10; i++) { } // i++ এখানে গ্রহণযোগ্য
// ফাংশনাল আপডেট (রি-অ্যাসাইন ছাড়া)
const incremented = arr.map(x => x + 1);
কেন এড়াতে হয়?
- পREFIX/POSTFIX পার্থক্য ভুল বুঝতে হয়
- হোয়াইটস্পেস সংবেদনশীল
- কোড পঠনযোগ্যতা কমে যায়
- ফাংশনাল প্রোগ্রামিং-এ ইমিউটেবিলিটি ভাঙে