دستور if

می‌توان با استفاده از دستور if و یک شرط خاص که باعث ایجاد یک کد می‌شود یک منطق به برنامه خود اضافه کنید. دستور if ساده‌ترین دستور شرطی است که برنامه می‌گوید اگر شرطی برقرار است کد معینی را انجام بده. ساختار دستور if به صورت زیر است :

if (condition)
   code to execute;

قبل از اجرای دستور if ابتدا شرط بررسی می‌شود. اگر شرط برقرار باشد یعنی درست باشد سپس کد اجرا می‌شود. شرط یک عبارت مقایسه‌ای است. می‌توان از عملگرهای مقایسه‌ای برای تست درست یا اشتباه بودن شرط استفاده کرد. اجازه بدهید که نگاهی به نحوه استفاده از دستور if در داخل برنامه بیندازیم. برنامه زیر پیغام Hello World را اگر مقدار number کمتر از 10 و Goodbye World را اگر مقدار number از 10 بزرگ‌تر باشد در صفحه نمایش می‌دهد.

  1 //Declare a variable and set it a value less than 10
  2 var number = 5;                                     
  3                                                     
  4 //If the value of number is less than 10            
  5 if (number < 10)                                    
  6     console.log("Hello World.");              
  7                                                     
  8 //Change the value of a number to a value which     
  9 // is greater than 10                               
 10 number = 15;                                        
 11                                                     
 12 //If the value of number is greater than 10         
 13 if (number > 10)                                    
 14     console.log("Goodbye World."); 
Hello World.
Goodbye World.

در خط 2 یک متغیر با نام number تعریف و مقدار 5 به آن اختصاص داده شده است. وقتی به اولین دستور if در خط 5 می‌رسیم برنامه تشخیص می‌دهد که مقدار number از 10 کمتر است یعنی 5 کوچک‌تر از 10 است.

منطقی است که نتیجه مقایسه درست می‌باشد بنابراین دستور if دستور را اجرا می‌کند (خط 6) و پیغام Hello World چاپ می‌شود. حال مقدار number را به 15 تغییر می‌دهیم (خط 10). وقتی به دومین دستور if در خط 13 می‌رسیم برنامه مقدار number را با 10 مقایسه می‌کند و چون مقدار number یعنی 15 از 10 بزرگ‌تر است برنامه پیغام Goodbye World را چاپ می‌کند (خط 14). به این نکته توجه کنید که دستور if را می‌توان در یک خط نوشت :

if ( number > 10 ) console.log("Goodbye World.");

شما می‌توانید چندین دستور را در داخل دستور if بنویسید. کافیست که از یک آکولاد برای نشان دادن ابتدا و انتهای دستورات استفاده کنید. همه دستورات داخل بین آکولاد جز بدنه دستور if هستند. نحوه تعریف چند دستور در داخل بدنه if به صورت زیر است :

if (condition)
{
    statement1;
    statement2;
    .
    .
    .
    statementN;
}

این هم یک مثال ساده :

var x = 11;

if (x > 10)
{
   console.log("x is greater than 10.");
   console.log("This is still part of the if statement.");
}  

در مثال بالا اگر مقدار x از 10 بزرگ‌تر باشد دو پیغام چاپ می‌شود. حال اگر به عنوان مثال آکولاد را حذف کنیم و مقدار x از 10 بزرگ‌تر نباشد مانند کد زیر :

var x = 5;

if (x > 10)
   console.log("x is greater than 10.");
   console.log("This is still part of the if statement.");

کد بالا در صورتی بهتر خوانده می‌شود که بین دستورات فاصله بگذاریم.

if (x > 10)
   console.log("x is greater than 10.");
   
   console.log("This is still part of the if statement.");

می‌بیند که دستور دوم یعنی خط آخر در مثال بالا، جز دستور if نیست. اینجاست که چون ما فرض را بر این گذاشته‌ایم که مقدار x از 10 کوچک‌تر است پس خطThis is still part of the if statement. (Really?) چاپ می‌شود. در نتیجه اهمیت وجود آکولاد مشخص می‌شود. به عنوان تمرین همیشه حتی اگر فقط یک دستور در بدنه if داشتید برای آن یک آکولاد بگذارید. فراموش نکنید که از قلم انداختن یک آکولاد باعث به وجود آمدن خطا شده و یافتن آن را سخت می‌کند. مثالی دیگر در مورد دستور if :

 1: var firstNumber;
 2: var secondNumb ;
 3: 
 4: firstNumber  = parseInt(prompt("Enter a number: "));
 5: secondNumber = parseInt(prompt("Enter another number: "));
 6: 
 7: if (firstNumber == secondNumber)
 8: {
 9:     console.log(`${firstNumber} == ${secondNumber}`);
10: }
11: if (firstNumber != secondNumber)
12: {
13:     console.log(`${firstNumber} != ${secondNumber}`);
14: }
15: if (firstNumber < secondNumber)
16: {
17:     console.log(`${firstNumber} <  ${secondNumber}`);
18: }
19: if (firstNumber > secondNumber)
20: {
21:     console.log(`${firstNumber} >  ${secondNumber}`);
22: }
23: if (firstNumber <= secondNumber)
24: {
25:     console.log(`${firstNumber} <= ${secondNumber}`);
26: }
27: if (firstNumber >= secondNumber)
28: {
29:     console.log(`${firstNumber} >= ${secondNumber}`);
30: }

ما از عملگرهای مقایسه‌ای در دستور if استفاده کرده‌ایم. ابتدا دو عدد که قرار است با هم مقایسه شوند را به عنوان ورودی از کاربر می‌گیریم (خطوط 4 و 5). توجه کنید که چون ورودی های گرفته شده توسط متد ()prompt از نوع رشته است، پس باید آنها را با استفاده از متد ()parseInt به نوع عددی تبدیل کنیم تا کار مقایسه راحت تر انجام شود. با اجرای برنامه پنجره ای به صورت زیر برای شما نمایش داده می شود:

در پنجره باز شده عدد 2 را نوشته و سپس دکمه OK را فشار می دهیم. با زدن دکمه OK، پنجره ای دیگر به صورت زیر نمایش داده می شود:

در این پنجره نیز بعد از وارد کردن عدد 5 و زدن دکمه OK، نتیجه به صورت زیر در محیط کنسول نمایش داده می شود:

2 != 5
2 < 5
2 <= 5

به این نکته توجه داشته باشید که شرطها مقادیر بولی هستند، بنابراین شما می‌توانید نتیجه یک عبارت را در داخل یک متغیر بولی ذخیره کنید و سپس از متغیر به عنوان شرط در دستور if استفاده کنید. اگر مقدار year برابر 2000 باشد سپس حاصل عبارت در متغیر isNewMillenium ذخیره می‌شود. می‌توان از متغیر برای تشخیص کد اجرایی بدنه دستور if استفاده کرد خواه مقدار متغیر درست باشد یا نادرست.

var isNewMillenium = 2000;

Boolean(isNewMillenium);

if (isNewMillenium)
{
    console.log("Happy New Millenium!");
}