🔍 المشغلات المنطقية في JavaScript: دماغ البرنامج الذكي 🧠
مرحباً بك في عالم المنطق البرمجي! بعد أن تعلمنا في الدروس السابقة كيفية عمل المقارنات (مثل <, >, ===) التي تعطينا إجابة true أو false، حان الوقت لنسأل: ماذا لو أردنا دمج أكثر من شرط معاً؟ هنا يأتي دور الأبطال الثلاثة: المشغلات المنطقية (Logical Operators). فكر فيهم كـ "كلمات الربط" في عالم البرمجة، التي تسمح لنا باتخاذ قرارات أكثر ذكاءً وتعقيداً.
🧩 ما هي المشغلات المنطقية؟
المشغلات المنطقية هي رموز خاصة نستخدمها للتعامل مع القيم المنطقية (true و false) ودمجها أو عكسها. الهدف الأساسي هو بناء شروط مركبة للتحكم في مسار تنفيذ البرنامج (مثل جمل if التي سنتعلمها لاحقاً).
أنواعها الأساسية ثلاثة:
&&(AND - و): تطلب تحقيق جميع الشروط.||(OR - أو): تطلب تحقيق واحد على الأقل من الشروط.!(NOT - ليس): تعكس قيمة الشرط.
🤝 المشغل && (Logical AND)
هذا المشغل يعني "و". يكون نتيجته true فقط إذا كان كلا الطرفين (أو جميع الشروط) صحيحين. إذا كان أحد الطرفين false، فالنتيجة ستكون false.
// مثال 1: كلا الشرطين صحيح
console.log(true && true); // الناتج: true
// الشرط: صحيح "و" صحيح = صحيح
// مثال 2: أحد الشرطين خطأ
console.log(true && false); // الناتج: false
// الشرط: صحيح "و" خطأ = خطأ
// مثال واقعي بسيط:
let hasTicket = true;
let hasID = true;
let canEnter = hasTicket && hasID; // يمكن الدخول إذا كان لديه تذكرة "و" هوية
console.log(canEnter); // الناتج: true
💡 قاعدة && الذهبية: النتيجة true فقط إذا كان الكل true.
🍰 المشغل || (Logical OR)
هذا المشغل يعني "أو". يكون نتيجته true إذا كان أحد الطرفين (أو أحد الشروط) على الأقل صحيحاً. تكون النتيجة false فقط إذا كان كلا الطرفين false.
// مثال 1: أحد الشرطين صحيح
console.log(true || false); // الناتج: true
// الشرط: صحيح "أو" خطأ = صحيح
// مثال 2: كلا الشرطين خطأ
console.log(false || false); // الناتج: false
// الشرط: خطأ "أو" خطأ = خطأ
// مثال واقعي بسيط:
let hasCash = false;
let hasCreditCard = true;
let canPay = hasCash || hasCreditCard; // يمكن الدفع إذا كان لديه نقداً "أو" بطاقة ائتمان
console.log(canPay); // الناتج: true
💡 قاعدة || الذهبية: النتيجة false فقط إذا كان الكل false.
🔄 المشغل ! (Logical NOT)
هذا المشغل يعني "ليس". وهو مشغل أحادي (يعمل على قيمة واحدة فقط). وظيفته ببساطة عكس القيمة المنطقية. إذا كانت true يصير false، والعكس صحيح.
// مثال على العكس:
console.log(!true); // الناتج: false
console.log(!false); // الناتج: true
// مثال واقعي بسيط:
let isDoorLocked = true;
let canOpenDoor = !isDoorLocked; // يمكن فتح الباب إذا كان "ليس" مقفولاً
console.log(canOpenDoor); // الناتج: false (لأن الباب مقفول، وعكس true هو false)
💡 تذكر: علامة التعجب ! تعني "ليس". !true تقرأ "ليس صحيحاً" وتساوي false.
🧪 خلط المشغلات مع المقارنات (أمثلة عملية)
قوة المشغلات المنطقية تظهر عندما ندمجها مع مشغلات المقارنة التي تعلمناها.
// مثال: التحقق من عمر مناسب ووجود إذن
let age = 20;
let hasPermission = true;
// يمكن المشاهدة إذا كان العمر 18 أو أكثر "و" لديه إذن
let canWatchMovie = (age >= 18) && hasPermission;
console.log(canWatchMovie); // الناتج: true
// مثال: عرض خصم إذا كان اليوم عطلة "أو" إذا كان العميل عضوياً
let isHoliday = false;
let isMember = true;
let hasDiscount = isHoliday || isMember;
console.log(hasDiscount); // الناتج: true (لأنه عضو، حتى لو ليس عطلة)
ملاحظة: الأقواس () حول (age >= 18) ليست إلزامية هنا، لكنها تساعد في جعل الكود أكثر وضوحاً وقراءة.
🎯 الخلاصة: متى نستخدم كل مشغل؟
- استخدم
&&(AND) عندما يجب تحقيق جميع الشروط معاً. مثل: "إذا كان الطالب حاضراً و قد دفع المصروفات". - استخدم
||(OR) عندما يكفي تحقيق شرط واحد على الأقل. مثل: "يمكنك الدخول إذا كنت موظفاً أو ضيفاً مدعواً". - استخدم
!(NOT) عندما تريد عكس منطق الشرط. مثل: "افعل هذا إذا كان الباب ليس مقفولاً".
🎓 اختبر نفسك
التعليقات
شاركنا رأيك أو أسئلتك حول هذا المقال