if...else في JavaScript

من موسوعة حسوب

التعبير البرمجي الشرطي (if statement) يُستخدَم لتنفيذ تعبير برمجي معيّن عندما يكون الشرط محققًا، وإذا كان الشرط غير محققٍ فسيُنفِّذ تعبيرًا برمجيًا آخر.

البنية العامة

if (condition)
   statement1
[else
   statement2]

condition

تعبيرٌ يمكن أن يكون محققًا (true) أو غير محقق (false).

statement1

التعبير البرمجي الذي سيُنفَّذ عندما يكون الشرط condition محققًا، ويمكن أن يكون هذا التعبير أيّ تعبيرٍ صالحٍ بما في ذلك تعابير if المتشعبة، ويمكن إنشاء قسم كتلي { ... } لتجميع أكثر من تعبير برمجي لتنفيذها جميعها، أو يمكن استخدام التعبير البرمجي الفارغ ; لكيلا يُنفَّذ أيُّ تعبيرٍ.

statement2

التعبير البرمجي الذي سيُنفَّذ عندما يكون الشرط condition غير محقق وكان هنالك قسم else، ويمكن أن يكون هذا التعبير أيّ تعبيرٍ صالحٍ بما في ذلك تعابير if المتشعبة.

الوصف

يمكن تشعّب أكثر من تعبير if...else داخل بعضها لإنشاء قسم else if؛ لاحظ أنَّه لا توجد كلمة محجوزة في JavaScript باسم elseif:

if (condition1)
   statement1
else if (condition2)
   statement2
else if (condition3)
   statement3
...
else
   statementN

إذا أردتَ فهم بنية المثال السابق، فمن الأفضل إضافة مسافات بادئة كما يلي:

if (condition1)
   statement1
else
   if (condition2)
      statement2
   else
      if (condition3)
...

لتنفيذ أكثر من تعبير برمجي ضمن أحد الأقسم، فيمكن استخدام الأقسام الكتلية { ... } لتجميع تلك التعابير مع بعضها بعضًا؛ لاحظ أنَّ من الأفضل استخدام الأقسام الكتلية دومًا، خصوصًا عند تشعّب تعابير if:

if (condition) {
   statements1
} else {
   statements2
}

من المهم ألّا تخلط بين القيم المنطقية الأوليّة (primitive Boolean values) وهي true و false مع الكائن Boolean؛ فأيّة قيم لا تساوي undefined أو null أو 0 أو NaN أو سلسلة نصية فارغة ""، وأيّة كائنات -بما في ذلك كائن Boolean الذي قيمته هي false- ستُعدّ على أنها true. مثال:

var b = new Boolean(false);
if (b) // سيتحقق هذا الشرط

أمثلة

استخدام if...else

if (cipher_char === from_char) {
   result = result + to_char;
   x++;
} else {
   result = result + clear_char;
}

استخدام else if

لاحظ أنَّه لا توجد كلمة محجوزة في JavaScript باسم elseif، لكن يمكن كتابتها بوضع فراغ بين else و if:

if (x > 5) {
 /* تعابير برمجية */
} else if (x > 50) {
 /* تعابير برمجية */
} else {
 /* تعابير برمجية */
}

عمليات الإسناد ضمن التعابير الشرطية

من المستحسن عدم استخدام عمليات الإسناد البسيطة ضمن التعابير الشرطية، لأن عملية الإسناد قد تختلط مع تعابير المساواة عند إلقاء نظرة خاطفة على الشيفرة، فمن الأفضل عدم استخدام شفيرة تشبه ما يلي:

if (x = y) {
   /* تعابير برمجية */
}

أما إذا احتجتَ إلى عملية إسناد ضمن التعبير الشرطي، فمن الشائع وضع أقواس إضافية حولها لتبيينها:

if ((x = y)) {
   /* تعابير برمجية */
}

دعم المتصفحات

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي نعم نعم نعم نعم نعم

مصادر ومواصفات