دستورات شرطی
دستورات شرطی (Conditional Statements) در جاوااسکریپت ابزارهایی حیاتی برای کنترل جریان برنامه هستند و به توسعهدهندگان این امکان را میدهند که بر اساس شرایط مختلف، مسیر اجرای برنامه را تغییر دهند. تصور کنید در حال ساخت یک خانه هستید: بسته به نوع اتاق، تصمیم میگیرید که پنجره یا در کجا قرار گیرد، یا هنگام چیدمان اتاق، انتخاب میکنید که کدام وسایل در کجا قرار بگیرند. به همین شکل، دستورات شرطی به کد شما اجازه میدهند که بسته به ورودیها یا دادهها، رفتار متفاوتی داشته باشد.
در یک فروشگاه آنلاین، دستورات شرطی میتوانند بر اساس نقش کاربر یا مبلغ خرید، تخفیفها و پیشنهادات خاص را اعمال کنند. در وبسایت خبری، میتوانند محتوا را بر اساس علاقهمندیها یا موقعیت کاربر شخصیسازی کنند. در یک بلاگ شخصی، نمایش مقالهها یا بخشهای خاص میتواند به وسیله دستورات شرطی کنترل شود. در پرتالهای دولتی، این دستورات میتوانند تصمیم بگیرند که کدام فرمها یا اطلاعات به کاربر نمایش داده شوند.
در این آموزش، شما یاد خواهید گرفت چگونه از if، else، else if و switch به صورت حرفهای استفاده کنید و آنها را با عملگرهای منطقی مثل &&، || و ! ترکیب کنید تا تصمیمات پیچیده را مدیریت کنید. مثالها واقعی و کاربردی خواهند بود و هدف این است که بتوانید دستورات شرطی را به صورت خوانا، قابل نگهداری و انعطافپذیر بنویسید، درست مانند سازماندهی کتابها در یک کتابخانه یا نوشتن نامهای که محتوا آن بسته به گیرنده تغییر میکند.
مثال پایه
javascript// بررسی نقش کاربر (User Role)
let userRole = "admin"; // مقادیر ممکن: admin, editor, guest
if (userRole === "admin") {
console.log("خوش آمدید، شما میتوانید تمام محتوا را مدیریت کنید."); // پیام مدیر
} else if (userRole === "editor") {
console.log("خوش آمدید، شما میتوانید محتوا را ویرایش کنید."); // پیام ویرایشگر
} else {
console.log("خوش آمدید، شما فقط میتوانید محتوا را مشاهده کنید."); // پیام کاربر عادی
}
در این مثال، یک متغیر به نام userRole
تعریف شده است که نقش کاربر را مشخص میکند. دستور if بررسی میکند که آیا userRole
برابر با "admin" است یا خیر. اگر شرط درست باشد، بلاک مرتبط اجرا شده و پیام مخصوص مدیر نمایش داده میشود. اگر این شرط برقرار نباشد، دستور else if
بررسی میکند که آیا کاربر ویرایشگر است. در نهایت، دستور else
برای تمام حالات دیگر اجرا میشود، مانند کاربران عادی یا مهمان.
استفاده از عملگر مقایسهای سختگیرانه ===
تضمین میکند که هم مقدار و هم نوع داده یکسان باشند و از تبدیل نوع غیرمنتظره در جاوااسکریپت جلوگیری میکند. ساختار if-else امکان کنترل دقیق جریان برنامه را فراهم میکند و میتواند در وبسایتهای خبری یا بلاگ تعیین کند که کدام نوار ناوبری یا محتوا نمایش داده شود. همچنین، ترکیب با عملگرهای منطقی مانند && و || امکان بررسی چندین شرط همزمان را فراهم میکند و کد را انعطافپذیرتر و قویتر میسازد.
مثال کاربردی
javascript// سیستم تخفیف فروشگاه آنلاین
let userType = "vip"; // مقادیر ممکن: regular, vip
let purchaseAmount = 250; // مبلغ خرید به دلار
if (userType === "vip" && purchaseAmount > 200) {
console.log("تبریک! شما ۲۰٪ تخفیف دریافت کردید."); // کاربر VIP با خرید بالا
} else if (userType === "vip") {
console.log("شما ۱۰٪ تخفیف برای خرید بعدی دریافت میکنید."); // فقط کاربر VIP
} else if (purchaseAmount > 200) {
console.log("شما واجد شرایط ارسال رایگان هستید."); // خرید بالا برای غیر VIP
} else {
console.log("بیشتر خرید کنید تا پیشنهادات ویژه دریافت کنید."); // پیام پیشفرض
}
این مثال نشان میدهد که چگونه دستورات شرطی در یک فروشگاه آنلاین واقعی کاربرد دارند. دستور if اولیه از عملگر منطقی AND (&&
) استفاده میکند تا بررسی کند آیا کاربر VIP است و مبلغ خرید بیش از ۲۰۰ دلار است. فقط در صورتی که هر دو شرط برقرار باشند، پیام ۲۰٪ تخفیف نمایش داده میشود. دستور else if
بعدی کاربران VIP با خرید کمتر را مدیریت میکند و ۱۰٪ تخفیف میدهد. دستور else if
سوم برای کاربران غیر VIP با خرید بالا پیام ارسال رایگان را نشان میدهد. در نهایت، دستور else
برای تمام کاربران دیگر پیام پیشفرض را نمایش میدهد تا آنها را به خرید بیشتر ترغیب کند.
این مثال نشان میدهد که ترکیب چند شرط چگونه میتواند منطق پیچیده کسبوکار را به صورت مؤثر پیادهسازی کند. هر شاخه شرطی یک نقطه تصمیمگیری است، درست مانند انتخاب چیدمان اتاق یا سازماندهی کتابها در کتابخانه. ساختار واضح و خوانا، نگهداری و توسعه کد را آسان میکند. کاربران مبتدی باید ترتیب ارزیابی شرطها را درک کنند و با استفاده از console.log
مسیر اجرای کد را بررسی کنند.
بهترین روشها شامل استفاده از عملگر مقایسهای سختگیرانه (===
/ !==
)، استفاده از پرانتز برای شفافیت در شرایط پیچیده، و استخراج منطق تکراری در توابع قابل استفاده مجدد هستند. افزودن کامنت در هر بلوک شرطی به نگهداری کد کمک میکند، به ویژه در پروژههای بزرگ با چندین توسعهدهنده. قبل از استفاده، اعتبارسنجی متغیرها از وقوع خطاهای زمان اجرا جلوگیری میکند.
اشتباهات رایج شامل حذف بلوک else
پیشفرض، استفاده از ==
به جای ===
که میتواند رفتار غیرمنتظره ایجاد کند، شرطهای تو در تو بسیار زیاد که خوانایی کد را کاهش میدهد و نادیده گرفتن بررسی null یا undefined است. برای رفع مشکل و دیباگ، از console.log
استفاده کنید و جریان اجرای برنامه را با ابزارهای مرورگر بررسی نمایید. شروع با شرایط ساده و سپس اضافه کردن شرایط پیچیده توصیه میشود تا کد روشن و صحیح باقی بماند.
📊 مرجع سریع
Property/Method | Description | Example |
---|---|---|
if | اجرای بلاک زمانی که شرط درست باشد | if(userAge >= 18){console.log("Adult")} |
else if | اجرای بلاک در صورتی که شرط قبلی درست نباشد | else if(userAge >= 13){console.log("Teen")} |
else | اجرای بلاک زمانی که تمام شرایط قبلی غلط باشند | else{console.log("Child")} |
switch | اجرای بلاک بر اساس مقدار یک متغیر | switch(day){case "Mon": ...} |
&& | عملگر AND منطقی، درست اگر تمام شروط درست باشند | if(isVIP && amount>200){...} |
عملگر OR منطقی، درست اگر حداقل یکی از شروط درست باشد | if(isVIP | amount>200){...} |
در نهایت، دستورات شرطی برای ایجاد برنامههای پویا و تعاملی در جاوااسکریپت ضروری هستند. این دستورات جریان برنامه را کنترل میکنند، محتوا را شخصیسازی میکنند و منطق کسبوکار را پیادهسازی مینمایند. تسلط بر if، else، else if، switch و عملگرهای منطقی به شما امکان میدهد کد خوانا، نگهداریپذیر و انعطافپذیر بنویسید.
این مفاهیم به طور مستقیم با دستکاری HTML DOM برای بهروزرسانیهای دینامیک صفحه و با ارتباطات backend برای تصمیمگیریهای مبتنی بر داده مرتبط هستند. موضوعات پیشنهادی بعدی شامل توابع برای کپسولهسازی شرایط پیچیده، مدیریت رویدادها و برنامهنویسی ناهمزمان با Promises یا async/await است. تمرین منظم و پیادهسازی در پروژههای واقعی باعث تقویت مهارت و افزایش کارایی در توسعه جاوااسکریپت میشود.
🧠 دانش خود را بیازمایید
آزمون دانش شما
درک خود از این موضوع را با سوالات کاربردی بسنجید.
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود