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 |
---|---|---|---|---|---|
الدعم الأساسي | نعم | نعم | نعم | نعم | نعم |
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).
- معيار ECMAScript 5.1.
- معيار ECMAScript 3rd Edition.
- معيار ECMAScript 1st Edition .