i
در حال برنامه نویسی و آماده سازی نسخه جدید «وبگو» هستیم، در این نسخه قابلیت ها و ظاهر سایت به کلی متفاوت و کاملتر خواهد بود، این فرآیند زمانبر و از مدتی پیش شروع شده و همچنان ادامه دارد، روند پیشرفت پروژه در این قسمت به صورت درصدی مشخص است و به تناوب به روزرسانی می شود.
نکته:
با توجه به تاریخ نگارش آموزش های سایت و پیشرفت تکنولوژی های مرتبط با وب در سالیان اخیر، محتوای برخی از مطالب قدیمی ممکن است نیاز به ویرایش و به روزرسانی داشته باشند که این کار هم زمان با تهیه نسخه جدید «وبگو» به مرور در حال انجام است، لطفا در استفاده از مطالب سایت به این نکته دقت داشته و حتی المقدور از چند منبع مختلف استفاده نمائید.
article

دستورات شرطی (Conditional Statements) در جاوا اسکریپت (JavaScript)

javascript-conditional-statements

در علم کامپیوتر و دنیای برنامه نویسی دستورات شرطی (Conditional Statements) عباراتی آشنا هستند که تقریبا در هر زبانی با آنها سر و کار خواهیم داشت، به بیان ساده دستورات شرطی برای تعیین مسیر اجرا و پردازش کدها در دو راهی های برنامه ها استفاده می شوند که منظور از دو راهی true یا false بودن مقایسه است، به فرض در محاوره می گوییم اگر X بزرگتر از Y باشد (نتیجه مقایسه true باشد) پلن A اعمال می شود در غیر این صورت (نتیجه مقایسه false باشد) پلن B اعمال خواهد شد و در واقع با بررسی هر مقایسه عملیات در نظر گرفته شده برای آن را لغو یا اجرا می کنیم، در دنیای برنامه نویسی نیز دستورات شرطی به این منظور تعریف شده اند تا بتوانیم عبارات "اگر"، "در غیر این صورت" و "در غیر این صورت اگر" را به زبان کدها ترجمه کنیم، اگر یادمان باشد گفتیم که شیوه نگارش (Syntax) زبان های برنامه نویسی چیزی نیست جزء روشی که بتوانیم ایده های ذهنی خود را به کمک آنها به زبان قابل فهم برای ماشین و مفسر آن زبان تبدیل کنیم و دستورات شرطی یکی از ابزارها و قابلیت هایی است که ما را در این راه یاری می دهند.

دستورات شرطی در جاوا اسکریپت (JavaScript Conditional Statements)


همان طور که در مطالب گذشته گفتیم عملگرهای محاسبه، مقایسه و استدلال منطقی در جاوا اسکریپت بدون وجود دستورات شرطی عملا کاربردی ندارند و در کنار این دستورات است که فرآیند مقایسه کامل می شود، دستورات شرطی شامل سه عبارت if (اگر)، else (در غیر این صورت) و else if (درغیر این صورت اگر) است، برای درک این دستورات به همان مثال آموزش قبل و محاسبه امتیازات مشتریان فروشگاه آنلاین رجوع می کنیم، فرض کنیم می خواهیم مقایسه کنیم که امتیاز کاربر از 12 کوچکتر باشد، در این صورت به زبان ساده خواهیم نوشت "(اگر امتیاز کاربر کمتر از 12 بود) {این فرآیند را انجام می دهیم}" که کد آن به شکل زیر خواهد بود.
if(point < 12){
}
اگر نتیجه این رابطه صحیح (true) باشد محتوای داخل {} اجرا خواهد شد (این محتوا با توجه به هدف و نیاز ما از برنامه نویسی مشخص می شود)، حال فرض کنیم نتیجه این رابطه نادرست (false) باشد یعنی امتیاز کاربر بیشتر از 12 یا مساوی با آن است، در این حالت دو راه برای توسعه کد وجود دارد، استفاده از else (در غیر این صورت) یا else if (درغیر این صورت اگر)، اگر از else استفاده کنیم نقطه پایانی مقایسه را تعیین کرده ایم و دیگر نمی توانیم آن را توسعه دهیم "(اگر امتیاز کاربر کمتر از 12 بود) {این فرآیند را انجام می دهیم} (در غیر این صورت) {این فرآیند را انجام می دهیم و تمام}".
if(point < 12){
} else{
}
اما else if مشابه if عمل می کند و می توانیم به هر تعداد مورد نیاز مقایسه را توسعه دهیم "(اگر امتیاز کاربر کمتر از 12 بود) {این فرآیند را انجام می دهیم} (در غیر این صورت اگر امتیاز کاربر کمتر از 14 بود) {این فرآیند را انجام می دهیم} (در غیر این صورت اگر امتیاز کاربر بیشتر از 16 بود) {این فرآیند را انجام می دهیم} (در غیر این صورت) {این فرآیند را انجام می دهیم و تمام}".
if(point < 12){
} else if(point < 14){
} else if(point > 16){
} else{
}
تحلیل نمونه کد بالا بسیار ساده است، در شرط if اول بررسی می کنیم اگر مقدار متغیر point کوچکتر از 12 باشد قسمت داخل {} آن اجرا و فرآیند مقایسه به پایان می رسد، اما اگر اینگونه نبود و به فرض point برابر 13 باشد else if اول اجرا و اگر point برابر 17 باشد قاعدتا else if دوم اجرا خواهد شد، بر همین اساس اگر point برابر 15 باشد قسمت else پایانی اجرا می شود چون هیچ کدام از مقایسه های قبلی true نیستند و else پایانی به عنوان حالت پیش فرض اجرا می شود، در نمونه کد زیر از شرط if و else جهت مقایسه امتیاز کاربر فرضی استفاده کرده ایم که با اجرای کدها و تغییر مقدار متغیر point شیوه مقایسه، منطق و شرط در جاوا اسکریپت به خوبی قابل درک خواهد بود.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>وبگو | مقایسه با دستورات شرطی if و else در جاوا اسکریپت</title>
<!-- Webgoo.ir -->
<style type="text/css">
.rtl{
    direction:rtl;
}
</style>
</head>
<body>
<div class="rtl">
<script type="text/javascript">
var point = 10;
var num = 12;

if(point < num){
    document.write('امتیاز کاربر کمتر از ' + num + ' است!');
} else{
    document.write('امتیاز کاربر بیشتر از ' + num + ' یا مساوی با ' + num + ' است!');
}
</script>
<hr>
<script type="text/javascript">
var point = 20;
var num = 18;

if(point < num){
    document.write('امتیاز کاربر کمتر از ' + num + ' است!');
} else{
    document.write('امتیاز کاربر بیشتر از ' + num + ' یا مساوی با ' + num + ' است!');
}
</script>
<hr>
<script type="text/javascript">
var point = 15;
var num = 15;

if(point < num){
    document.write('امتیاز کاربر کمتر از ' + num + ' است!');
} else{
    document.write('امتیاز کاربر بیشتر از ' + num + ' یا مساوی با ' + num + ' است!');
}
</script>
<hr>
علامت + در جاوا اسکریپت هم مقدار عددی (Int) و هم مقدار رشته ای (String) را جمع می کند! اگر دو طرف رابطه هر دو عدد باشند حاصل یک عدد خواهد بود، اما اگر یکی از طرفین یا هر دو طرف به صورت رشته باشند، حاصل یک مقدار رشته ای خواهد بود.
</div>
</body>
</html>
پیش نمایش
برای درک بهتر نحوه عملکرد دستورات شرطی در جاوا اسکریپت، کد بالا را در سیستم خود در یک فایل با فرمت html ذخیره، مقادیر متغیرها را به نحو دلخواه تغییر و نتیجه هر تغییر را در مرورگر ببینید.
در نمونه کد بالا صرفا از دستور شرطی if و else استفاده شده است، در برنامه نویسی معمولا فرآیندها پیچیده تر از این هستند و ناگزیر باید از eles if نیز استفاده کنیم، مثال زیر شکل توسعه یافته نمونه کد بالا است که در صورت تسلط بر دستور if و else می توانیم این کد را نیز جهت درک بهتر بررسی و موشکافی کنیم.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>وبگو | مقایسه با دستورات شرطی if، else و else if در جاوا اسکریپت</title>
<!-- Webgoo.ir -->
<style type="text/css">
.rtl{
    direction:rtl;
}
</style>
</head>
<body>
<div class="rtl">
<script type="text/javascript">
var point = 14;
var num = 12;

if(point < num){
    document.write('امتیاز کاربر کمتر از ' + num + ' است!');
} else if(point == 12){
    document.write('امتیاز کاربر 12 است!');
} else if(point > 12 && point < 15){
    document.write('امتیاز کاربر بین 12 تا 15  است!');
} else if(point == 15 || point == 16){
    document.write('امتیاز کاربر 15 یا 16  است!');
} else{
    document.write('امتیاز کاربر بیشتر از 16  است!');
}
</script>
<hr>
به یاد داشته باشیم جاوا اسکریپت در مرورگر کاربران اجرا می شود و سورس کدها در دسترس هستند، لذا سهوا یا عمدا همواره امکان تغییر نحوه عملکرد آنها وجود دارد، به همین دلیل نمی توانیم به عنوان یک روش مطمئن برای اعتبارسنجی روی آن حساب کنیم، برای اینگونه موارد باید از زبان های سمت سرور مانند PHP استفاده کنیم، در عمل معمولا اعتبارسنجی های اولیه توسط جاوا اسکریپت انجام شده و در نهایت پس از ارسال اطلاعات به سرور این PHP است که اعتبارسنجی اصلی و نهایی را انجام می دهد، به این صورت هم رابط کاربری بهینه و هم کدهای مطمئن با عملکرد حساب شده خواهیم داشت.
</div>
</body>
</html>
پیش نمایش
نکته: دقت کنیم شیوه نگارش (Syntax) هر زبانی مخصوص به خودش است و اگر این اصول را رعایت نکنیم در اجرای کدها با خطا مواجه خواهیم شد، به طور مثال دستور else if در جاوا اسکریپت با یک فاصله به کار می رود اما در PHP به صورت elseif نگارش می شود.
sectionدسته بندی: آموزش مقدماتی » JavaScript
related مطالب بیشتر:
» رویداد ها (Events) در جاوا اسکریپت (JavaScript)
» کار با پنجره Pop-up در جاوا اسکریپت (JavaScript)
» کار با تاریخ و زمان در جاوا اسکریپت (JavaScript)
» تعریف و استفاده از متغیر (Variable) در جاوا اسکریپت (JavaScript)
» عملگرها (Operators) در جاوا اسکریپت (JavaScript)
commentنظرات (۱ یادداشت برای این مطلب ارسال شده است)
more یادداشت های جدید بر اساس تاریخ ارسال در انتهای یادداشت های موجود نمایش داده می شوند.
نویسنده: بهارناز
زمان: ۰۳:۰۸:۰۲ - تاریخ: ۱۳۹۷/۰۲/۰۷
سلام. اگر از نظر اعتبار سنجی زیاد نمیشه روی جاوا اسکریپت حساب کرد. پس در کجاها ازش استفاده کنیم ؟ اعتبار سنجی اولیه یعنی چی ؟ پیشاپیش ممنونم از پاسخگوییتون
پاسخ: 
کدهای جاوا اسکریپت در مرورگر کاربران اجرا و لذا در دسترس هستند و همواره امکان تغییر آنها وجود دارد، به همین دلیل برای اعتبارسنجی نهایی و مطمئن مناسب نیستند، اما منظور از اعتبارسنجی اولیه این است که قبل از ارسال فرم به سرور پیش آگاهی به کاربران بدهیم، به طور مثال اگر کاربر یک گزینه را به اشتباه انتخاب یا ایمیل خود را با فرمت صحیح وارد نکرد در همان قسمت اطلاع رسانی صورت گیرد، این کار موجب بهبود رابط کاربری و ایجاد حس بهتر از کار با محیط برنامه می شود، در نهایت برای حفظ امنیت اعتبارسنجی نهایی در سرور و با برنامه نویسی سمت سرور که سورس ها دور از دسترس کاربران هست انجام می شود.
more لطفا پیش از ارسال یادداشت نکات زیر را مد نظر داشته باشید:
- مواردی که به کلی خارج از موضوع این مطلب هستند را در فرم منوی "تماس با ما" مطرح و پاسخ را از طریق ایمیل دریافت کنید.
- به سوالات کلی، مبهم، غیرضروری و مشکلاتی که هیچ تلاشی برای رفع آن نکرده باشید پاسخ خاصی داده نخواهد شد.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین قرار دهید تا امکان تست و بررسی وجود داشته باشد.
- تمام یادداشت ها بررسی و برای هر کاربر زمان مشخصی جهت پاسخگویی در نظر گرفته می شود، لذا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.




1 × 5
 refresh
آگهی
سفارش آگهی تبلیغاتی
Webgoo.ir

هزینه منصفانه، بازخورد مناسب