কন্ডিশনাল বা শর্ত (Conditionals)
If / Else — সিদ্ধান্ত গ্রহণকারী (If / Else — The Decision Maker)
কল্পনা করুন আপনি এমন এক রাস্তায় আছেন যা সামনে গিয়ে দু'দিকে ভাগ হয়ে গেছে। যদি বৃষ্টি হয়, তবে আপনি ছাতা নিয়ে যাবেন। আর তা না হলে আপনি রোদচশমা (sunglasses) পরে যাবেন। if / else ঠিক এই কাজটিই করে — কোনো শর্ত সত্য (true) নাকি মিথ্যা (false) তার ওপর ভিত্তি করে এটি আপনার কোডকে একটি পথ বেছে নেওয়ার সুযোগ দেয়।
দুটির বেশি সম্ভাবনা সামলাতে বা হ্যান্ডল করার জন্য আপনি চাইলে else if ব্যবহার করে একাধিক শর্ত জুড়তে পারেন। জাভাস্ক্রিপ্ট এগুলোকে ওপর থেকে নিচে যাচাই করে এবং প্রথম যে শর্তটির সাথে মিলে যায় বা ম্যাচ করে, ব্লকের সেই অংশটিকে রান বা এক্সিকিউট করে থাকে।
If / Else If / Else
ট্রুথি এবং ফলসি — জাভাস্ক্রিপ্টের অদ্ভুত সত্য বলার নিয়ম (Truthy & Falsy — JavaScript's Weird Truth System)
জাভাস্ক্রিপ্টে if কেবলমাত্র true এবং false এর সাথেই কাজ করে না। এটি যেকোনো ভ্যালু বা মানের সাথেই কাজ করতে পারে। কোনো ভ্যালু "ট্রুথি (truthy)" (যাকে true হিসেবে ধরা হয়) নাকি "ফলসি (falsy)" (যাকে false হিসেবে ধরা হয়), সেটি জাভাস্ক্রিপ্ট নিজেই নির্ধারণ করে নেয়।
ঠিক ৭টি ফলসি (falsy) ভ্যালু রয়েছে। আর অন্য সবকিছুই হলো ট্রুথি (truthy):
false— অবশ্যই0— শূন্য হলো ফলসি-0— নেগেটিভ শূন্য (হ্যাঁ, এরও অস্তিত্ব আছে)0n— BigInt শূন্য""— ফাঁকা বা এম্পটি স্ট্রিংnullundefinedNaN
এগুলো বাদে বাকি সবকিছুই — যার মধ্যে "0" (string zero), [] (empty array), এবং {} (empty object) অন্তর্ভুক্ত — হলো ট্রুথি (truthy)। এই ব্যাপারটি অনেকেই বুঝতে ভুল করেন!
ট্রুথি/ফলসির চমক বা সারপ্রাইজ (Truthy/Falsy Surprises)
Switch, Ternary এবং Nullish Coalescing (Switch, Ternary & Nullish Coalescing)
যখন আপনি কোনো একটি ভ্যালুকে অনেকগুলো সম্ভাব্য বিকল্পের সাথে মিলিয়ে দেখতে চান, তখন সুইচ (Switch) দারুণ কাজ করে — অনেকটা টিভি রিমোটের (TV remote) মতো, যেখানে নির্দিষ্ট বাটন চাপার সাথে নির্দিষ্ট চ্যানেল মিলে যায়।
টার্নারি অপারেটর (ternary operator) (condition ? valueIfTrue : valueIfFalse) হলো if/else এর একটি সংক্ষিপ্ত রূপ যা মাত্র এক লাইনের একটি এক্সপ্রেশনেই এঁটে যায়। শর্তের ওপর ভিত্তি করে ভ্যালু বা মান অ্যাসাইন (assign) করার জন্য এটি বেশ কার্যকরী।
নালিশ কোলিসিং অপারেটর (nullish coalescing operator) (??) কোনো কিছু null অথবা undefined হলে একটি ডিফল্ট ভ্যালু (default value) প্রদান করে। এটি || এর চেয়ে বেশি নিখুঁত (precise), কারণ এটি 0 বা ""-কে "ফাঁকা" বা "খালি" হিসেবে ধরে নেয় না।