العوامل المنطقية في JavaScript للمبتدئين: شرح AND وOR وNOT مع أمثلة عملية
تخيّل أنك تبني نظام دخول لموقع: المستخدم يجب أن يكون عمره مناسباً ويملك اشتراكاً فعالاً. أو يكفي أن يكون مديراً أو مشرفاً. هنا يأتي دور العوامل المنطقية.
إذا كنت تبحث عن شرح AND وOR وNOT في JavaScript أو كيف أدمج أكثر من شرط داخل if أو متى أستخدم && أو || أو !، فهذا الدرس يشرحها بأمثلة عملية واضحة.
ما هي العوامل المنطقية في JavaScript؟
هي معاملات تُستخدم مع الشروط لمساعدتك على بناء قرارات مركبة.
النتيجة النهائية تكون دائماً true أو false.
قاعدة بسيطة: المقارنة تعطيك شرطاً واحداً، والعوامل المنطقية تربط الشروط معاً.
| الرمز | المعنى | مثال | النتيجة |
|---|---|---|---|
&& |
AND (و) - يجب أن يكون الكل صحيحاً | (5 > 3) && (10 > 5) |
true |
|| |
OR (أو) - يكفي واحد صحيح | (5 > 3) || (1 > 5) |
true |
! |
NOT (ليس) - عكس النتيجة | !(5 > 3) |
false |
1) AND (&&): كل الشروط يجب أن تكون صحيحة
let age = 20;
let hasTicket = true;
// هل يمكنه الدخول؟ (عمره فوق 18 ولديه تذكرة)
if (age >= 18 && hasTicket) {
console.log("تفضل بالدخول");
}
ماذا يفعل هذا الكود؟ يسمح بالدخول فقط إذا تحقّق الشرطان معاً.
النتيجة المتوقعة: مع age=20 وhasTicket=true يتم الدخول.
خطأ شائع: استخدام && بينما المطلوب هو || في الشروط البديلة.
2) OR (||): يكفي شرط واحد صحيح
let isAdmin = false;
let isEditor = true;
if (isAdmin || isEditor) {
console.log('Allowed');
}
ماذا يفعل هذا الكود؟ يسمح بالوصول إذا كان المستخدم Admin أو Editor.
النتيجة المتوقعة: مع isEditor=true الشرط ينجح وتظهر Allowed.
خطأ شائع: كتابة شرطين بـ && مما يمنع الوصول إلا عند تحقق الاثنين معاً.
3) NOT (!): عكس القيمة المنطقية
let isLoggedIn = false;
if (!isLoggedIn) {
console.log('Please login');
}
ماذا يفعل هذا الكود؟ يعكس القيمة: إذا لم يكن المستخدم مسجلاً يدخل إلى رسالة تسجيل الدخول.
النتيجة المتوقعة: مع false ستظهر Please login.
خطأ شائع: وضع ! في مكان خاطئ فيغيّر معنى الشرط كاملاً.
4) دمج AND و OR معاً
let age = 17;
let hasParentPermission = true;
let isVip = false;
if ((age >= 18 && hasParentPermission) || isVip) {
console.log('Access granted');
} else {
console.log('Access denied');
}
ماذا يفعل هذا الكود؟ يطبّق منطق مركب مع أقواس لتوضيح الأولوية.
النتيجة المتوقعة: في هذا المثال النتيجة Access denied لأن الشرطين غير متحققين كما يلزم.
خطأ شائع: حذف الأقواس في الشروط المركبة ثم سوء فهم أولوية التقييم.
5) Short-Circuit باختصار
let userName = '';
let displayName = userName || 'Guest';
console.log(displayName); // Guest
ماذا يفعل هذا الكود؟ يستخدم || لإعطاء قيمة افتراضية عندما تكون الأولى فارغة.
النتيجة المتوقعة: عند فراغ userName يتم استخدام Guest.
خطأ شائع: نسيان أن || لا يعيد دائماً Boolean، بل قد يعيد قيمة.
Story قصيرة: شرط خصم لم يعمل
مبتدئ كتب شرط الخصم هكذا:
isMember && hasCoupon || isAdmin بدون أقواس.
النتيجة جاءت مختلفة عن المتوقع في بعض الحالات.
بعد إضافة الأقواس وتوضيح النية، أصبح المنطق واضحاً وثابتاً.
النتيجة في المتصفح (Console concept)
console.log(true && true); // true
console.log(true && false); // false
console.log(false || true); // true
console.log(!true); // false
Checklist سريعة قبل كتابة شرط مركب
- هل المطلوب تحقق جميع الشروط؟ استخدم
&&. - هل يكفي تحقق شرط واحد؟ استخدم
||. - هل تريد عكس النتيجة؟ استخدم
!. - هل أضفت أقواساً لتوضيح أولوية التقييم؟
روابط المتابعة بعد هذا الدرس
الخطوة التالية مباشرة: الجمل الشرطية if/else في JavaScript ثم جملة else if في JavaScript.
الأسئلة الشائعة — FAQ (أسئلة بحثية شائعة)
ما هي العوامل المنطقية في JavaScript؟
هي معاملات مثل && و|| و! تستخدم لربط الشروط أو عكس نتيجتها.
ما الفرق بين && و || في JavaScript؟
&& تحتاج أن تكون كل الشروط صحيحة، بينما || يكفي فيها شرط واحد صحيح.
متى أستخدم ! في JavaScript؟
عندما تريد عكس القيمة المنطقية، مثل التحقق أن المستخدم غير مسجل دخول.
هل || و && تعيدان Boolean دائماً؟
ليس دائماً، قد تعيدان قيمة من القيم نفسها بسبب short-circuit.
كيف أتجنب أخطاء الشروط المركبة؟
استخدم الأقواس لتقسيم المنطق بوضوح، واطبع نتائج الشروط الجزئية أثناء التطوير.
للمتابعة مباشرة: ابدأ بدرس الجمل الشرطية if/else في JavaScript ثم انتقل إلى جملة else if في JavaScript.