JavaScript: الجمل الشرطية في جافاسكريبت
آخر تحديث: 2026-10-13
الجمل الشرطية تعطي برنامجك القدرة على اتخاذ القرارات — اتخاذ مسارات مختلفة بناءً على مواقف مختلفة. بدونها، سيعمل الكود الخاص بك من أعلى إلى أسفل بدون تفرع; معها، يمكن لبرنامجك التفكير والاختيار مثل الإنسان.
1. جملة if
الشرط الأكثر أساسية: إذا كان الشرط صحيحًا، نفذ الكود داخل الأقواس المقوسة.
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head><meta charset="UTF-8"><title>جملة if</title></head>
<body>
<div id="output"></div>
<script>
let age = 20;
if (age >= 18) {
document.getElementById('output').textContent = 'أنت بالغ';
}
</script>
</body>
</html>
يمكنك حذف الأقواس المقوسة عندما يكون هناك جملة واحدة فقط بالداخل، لكنه غير م khuyến khích بشدة — الأقواس تجعل الكود أوضح وتمنع الأخطاء عند إضافة جمل أخرى لاحقًا.
اختيار ثنائي: إذا كان الشرط صحيحًا، نفذ كتلة if; وإلا، نفذ كتلة else.
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head><meta charset="UTF-8"><title>if...else</title></head>
<body>
<div id="output"></div>
<script>
let score = 45;
if (score >= 60) {
document.getElementById('output').textContent = 'ناجح!';
} else {
document.getElementById('output').textContent = 'لم ينجح، واصل المحاولة';
}
</script>
</body>
</html>
2. if...else if...else
شروط متعددة تُقيَّم من أعلى إلى أسفل — أول واحد يتطابق يُنفذ، والباقي يتخطى:
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head><meta charset="UTF-8"><title>if...else if</title></head>
<body>
<div id="output"></div>
<script>
let score = 85;
if (score >= 90) {
document.getElementById('output').textContent = 'ممتاز';
} else if (score >= 80) {
document.getElementById('output').textContent = 'جيد';
} else if (score >= 60) {
document.getElementById('output').textContent = 'ناجح';
} else {
document.getElementById('output').textContent = 'راسب';
}
</script>
</body>
</html>
▶ مثال: حاسبة الدرجات
▶ جرّب الكود3. العامل الثلاثي
العامل الثلاثي هو اختصار لـ if...else، مثالي للاختيارات الثنائية البسيطة:
<script>
// البناء: condition ? value1 : value2
let age = 20;
let status = age >= 18 ? 'بالغ' : 'قاصر';
// يعادل:
let status2;
if (age >= 18) {
status2 = 'بالغ';
} else {
status2 = 'قاصر';
}
</script>
if...else — القراءة أهم من الإيجاز.
4. جملة switch
عند التحقق من متغير واحد مقابل عدة قيم ثابتة، switch أنظف من if...else if:
<script>
let day = 3;
switch (day) {
case 1: console.log('الاثنين'); break;
case 2: console.log('الثلاثاء'); break;
case 3: console.log('الأربعاء'); break;
// ...
default: console.log('رقم غير صالح');
}
</script>
نقطتان رئيسيتان:
- لا تحذف
breakأبدًا — بدونه، "يسقط التنفيذ" إلى الحالة التالية defaultهو المصيدة الشاملة — يُنفذ عندما لا يتطابق أي case
▶ مثال: فخ السقوط في Switch
▶ جرّب الكودbreak هو أكثر أخطاء switch شيوعًا. لكن أحيانًا "السقوط" مفيد — عندما يجب أن تشغيل عدة قيم نفس المنطق، حذف break عن قصد يتيح دمجها.
5. القيم falsy
في التحققات الشرطية، تُعامل القيم التالية كـ false (تُسمى قيم falsy):
| قيمة falsy | الوصف |
|---|---|
false |
منطقي false |
0 |
صفر |
"" أو '' |
نص فارغ |
null |
فارغ |
undefined |
غير معرّف |
NaN |
ليس رقمًا |
جميع القيم الأخرى truthy، بما في ذلك "0" (نص صفر)، [] (مصفوفة فارغة)، {} (كائن فارغ) — قد تبدو "فارغة"، لكنها تُقيَّم كـ true في الشروط.
▶ مثال: تحققات القيم falsy
▶ جرّب الكود|| للقيم الافتراضية، انتبه: 0 و"" صالحان لكن يُعاملان كـ falsy. استخدم ?? (عامل الإدماج الفارغ) بدلاً من ذلك — يُطبق الافتراضي فقط على null وundefined.
❓ أسئلة شائعة
== و=== في الشروط؟== يُجري إكراه الأنواع قبل المقارنة ("1" == 1 هو true)، بينما === لا يفعل ("1" === 1 هو false). استخدم دائمًا === لتجنب التحولات الضمنية غير المتوقعة.switch مقارنة النصوص؟switch يعمل مع النصوص والأرقام والقيم المنطقية — يستخدم التساوي الصارم (===) للمقارنة.?? و||؟|| يُفعَّل على جميع القيم falsy (0، ""، null، undefined، NaN، false)، بينما ?? يُفعَّل فقط على null وundefined. استخدم ?? عندما تحتاج للحفاظ على 0 والنصوص الفارغة.📖 ملخص
if...else if...elseيُقيّم من أعلى إلى أسفل، يُنفذ أول تطابق ويتخطى الباقي- العامل الثلاثي هو اختصار لـ
if...else— جيد للتعيينات البسيطة، وليس للمنطق المعقد switchأنظف لمطابقة القيم الثابتة، لكن لا تنسَbreak- ست قيم falsy:
false،0،""،null،undefined،NaN "0"،[]،{}truthy — لا تنخدع بمظهرها "الفارغ"- كن حذرًا مع
||للقيم الافتراضية عندما يكون0و""صالحين — استخدم??أو مقارنات صريحة
📝 تمارين
- اكتب برنامجًا يأخذ سنة كمدخل ويحدد ما إذا كانت سنة كبيسة (قابلة للقسمة على 4 وليس على 100، أو قابلة للقسمة على 400)
- ابنِ حاسبة بسيطة: خذ رقمين وعامل (+، -، *، /) كمدخل، استخدم
switchلحساب النتيجة، وتعامل مع القسمة على صفر - ابنِ حاسبة BMI: خذ الطول (م) والوزن (كجم) كمدخل، احسب BMI، واعرض الفئة (نقص الوزن/طبيعي/وزن زائد/سمنة)