| القيمة | Truthy أم Falsy؟ |
|---|---|
| 0 | Falsy |
| "" | Falsy |
| null | Falsy |
| undefined | Falsy |
| NaN | Falsy |
| [] (مصفوفة فارغة) | Truthy |
| {} (كائن فارغ) | Truthy |
| "0" (نص يحتوي صفر) | Truthy |
الجمل الشرطية هي الأداة الأساسية لاتخاذ القرارات داخل البرنامج — تسمح بتنفيذ كود معين فقط إذا تحقق شرط ما. الصيغة الأبسط هي if، حيث يُوضع الشرط بين قوسين، ويُنفَّذ الكود داخل الأقواس المعقوفة {} فقط إذا كان الشرط true.
إذا أردت تنفيذ كود بديل عندما يكون الشرط false، تستخدم else بعد كتلة if. وإذا كان لديك أكثر من احتمال، تستخدم else if لفحص شروط إضافية بالترتيب — يتوقف البرنامج عند أول شرط يتحقق ولا يفحص الباقي.
أي قيمة في جافاسكريبت تُقيَّم كـ true أو false عند وضعها كشرط، وتُسمى القيم "الصادقة" (Truthy) و"الزائفة" (Falsy). القيم الزائفة الوحيدة في اللغة هي: false، 0، "" (نص فارغ)، null، undefined، وNaN. أي قيمة أخرى تُعامل كـ Truthy، بما فيها المصفوفة الفارغة [] والكائن الفارغ {} رغم أنهما قد يبدوان "فارغين".
يوجد أيضاً العامل الشرطي المُختصر (Ternary Operator) بصيغة شرط ? قيمة_إذا_صح : قيمة_إذا_خطأ، وهو مفيد جداً لكتابة شرط بسيط في سطر واحد بدل كتلة if/else كاملة، خاصة عند تعيين قيمة لمتغير بناءً على شرط.
| 1 | if (الشرط) { |
| 2 | // ينفذ إذا كان الشرط true |
| 3 | } else if (شرط_آخر) { |
| 4 | // ينفذ إذا تحقق الشرط الثاني |
| 5 | } else { |
| 6 | // ينفذ إذا فشلت كل الشروط السابقة |
| 7 | } |
| 8 | |
| 9 | // العامل الشرطي المختصر |
| 10 | const النتيجة = الشرط ? "صحيح" : "خطأ"; |
مثال 1: سلسلة else if لتصنيف الأعمار
| 1 | function تصنيف_العمر(عمر) { |
| 2 | if (عمر < 13) { |
| 3 | return "طفل"; |
| 4 | } else if (عمر < 20) { |
| 5 | return "مراهق"; |
| 6 | } else if (عمر < 60) { |
| 7 | return "بالغ"; |
| 8 | } else { |
| 9 | return "كبير السن"; |
| 10 | } |
| 11 | } |
| 12 | console.log(تصنيف_العمر(15)); // "مراهق" |
مثال 2: العامل الشرطي المختصر والقيم الزائفة
| 1 | // العامل الشرطي المختصر (Ternary) |
| 2 | const عمر = 20; |
| 3 | const الحالة = عمر >= 18 ? "بالغ" : "قاصر"; |
| 4 | console.log(الحالة); // "بالغ" |
| 5 | |
| 6 | // القيم الزائفة (Falsy) |
| 7 | if (0) console.log("لن يُطبع"); |
| 8 | if ("") console.log("لن يُطبع"); |
| 9 | if ("نص") console.log("سيُطبع لأن النص غير فارغ"); |