البرمجة

المعاملات المنطقية في جافاسكربت

المعاملات المنطقية في جافاسكربت

تعد المعاملات المنطقية جزءًا أساسيًا من أي لغة برمجة، بما في ذلك جافاسكربت، حيث تلعب دورًا حيويًا في التحكم في تدفق البرامج واتخاذ القرارات بناءً على شروط معينة. تعتبر المعاملات المنطقية أداة قوية لتطبيق المنطق في البرمجة، حيث تستخدم لتقييم العبارات والشروط وفقًا لقيم منطقية (صحيحة أو خاطئة). من خلال هذا المقال، سنتناول في تفصيل المعاملات المنطقية في جافاسكربت، وكيفية استخدامها في الكتابة الفعالة للكود، وكذلك أهميتها في تطبيقات البرمجة اليومية.

1. التعريف بالمعاملات المنطقية في جافاسكربت

المعاملات المنطقية هي أدوات تُستخدم لتحديد العلاقة بين القيم المنطقية. في جافاسكربت، هناك ثلاثة أنواع رئيسية من المعاملات المنطقية التي تُستخدم بشكل متكرر في البرمجة:

  • المعامل “AND” (&&)

  • المعامل “OR” (||)

  • المعامل “NOT” (!)

تعمل هذه المعاملات على تقييم القيم المنطقية (Boolean) أو التعبيرات المنطقية لتحديد النتيجة.

2. المعامل “AND” (&&)

يستخدم المعامل “AND” لربط شرطين أو أكثر بحيث تكون النتيجة صحيحة (true) إذا كانت جميع الشروط المترابطة صحيحة. إذا كان أحد الشروط خاطئًا (false)، ستكون النتيجة الكلية خاطئة.

المثال:

javascript
let age = 25; let hasLicense = true; if (age >= 18 && hasLicense) { console.log("يمكنك القيادة"); } else { console.log("لا يمكنك القيادة"); }

في المثال السابق، يتم التحقق من شرطين: الأول هو أن العمر يجب أن يكون 18 عامًا أو أكثر، والثاني هو أن الشخص يمتلك رخصة قيادة. إذا كان كلا الشرطين صحيحين، فسيتم السماح له بالقيادة.

قواعد التقييم:

  • إذا كانت جميع الشروط صحيحة، النتيجة هي true.

  • إذا كان أحد الشروط خاطئًا، النتيجة هي false.

3. المعامل “OR” (||)

يعمل المعامل “OR” على الربط بين شرطين بحيث تكون النتيجة صحيحة إذا كان أحد الشروط على الأقل صحيحًا. إذا كان كلا الشرطين خاطئين، فإن النتيجة ستكون خاطئة.

المثال:

javascript
let hasPassport = true; let hasID = false; if (hasPassport || hasID) { console.log("يمكنك السفر"); } else { console.log("لا يمكنك السفر"); }

في هذا المثال، يسمح للمستخدم بالسفر إذا كان لديه جواز سفر أو هوية. بما أن الشرط الأول صحيح، فإن النتيجة تكون true على الرغم من أن الشرط الثاني خاطئ.

قواعد التقييم:

  • إذا كان أحد الشروط صحيحًا، النتيجة هي true.

  • إذا كان كلا الشرطين خاطئين، النتيجة هي false.

4. المعامل “NOT” (!)

المعامل “NOT” يُستخدم لعكس القيمة المنطقية. إذا كانت القيمة true، فإن النتيجة ستكون false، وإذا كانت القيمة false، فإن النتيجة ستكون true.

المثال:

javascript
let isRaining = false; if (!isRaining) { console.log("الجو مشمس"); } else { console.log("الجو ممطر"); }

هنا، بما أن قيمة isRaining هي false، فإن عملية العكس باستخدام ! تجعل النتيجة true، وبالتالي سيظهر النص “الجو مشمس”.

قواعد التقييم:

  • إذا كانت القيمة صحيحة، يتم تحويلها إلى خاطئة.

  • إذا كانت القيمة خاطئة، يتم تحويلها إلى صحيحة.

5. التقييم البطيء للمعاملات المنطقية

يعد التقييم البطيء أحد الخصائص المثيرة في المعاملات المنطقية في جافاسكربت. فبدلاً من تقييم كل العبارات في المعاملات المنطقية، تقوم جافاسكربت بتقييم الشروط واحدة تلو الأخرى حتى تصل إلى نتيجة نهائية، ويمكنها أن تتوقف في أقرب نقطة ممكنة.

المثال:

javascript
let a = false; let b = true; if (a && b) { console.log("تم تنفيذ الشرط"); } else { console.log("لم يتم تنفيذ الشرط"); }

في هذا المثال، جافاسكربت لن تحتاج إلى تقييم الشرط الثاني (b) لأن الشرط الأول (a) قد يكون false، وبالتالي ستكون النتيجة النهائية حتمًا false.

6. القيم المعادلة في العمليات المنطقية

في جافاسكربت، لا تقتصر المعاملات المنطقية على القيم true و false فقط. يمكن استخدام أي قيمة في جافاسكربت كشرط منطقي. وبالتالي، فإن أي قيمة يتم تقييمها إلى true أو false وفقًا لما تُسمى “القيم الحقيقة” و”القيم الكاذبة”.

القيم الحقيقة (Truthy):

  • أي عدد غير صفر.

  • أي سلسلة نصية غير فارغة.

  • الكائنات والمصفوفات.

القيم الكاذبة (Falsy):

  • 0

  • "" (سلسلة فارغة)

  • null

  • undefined

  • NaN

  • false

المثال:

javascript
let userName = ""; if (userName) { console.log("مرحبًا بك، " + userName); } else { console.log("الرجاء إدخال اسم المستخدم"); }

في المثال السابق، بما أن قيمة userName هي سلسلة فارغة، فسيتم تقييم الشرط على أنه false وستتم طباعة “الرجاء إدخال اسم المستخدم”.

7. استخدام المعاملات المنطقية في الجمل الشرطية

المعاملات المنطقية تلعب دورًا مهمًا في الجمل الشرطية if...else، حيث تساعد على تنفيذ أو تخطي كتل معينة من الكود بناءً على شروط متعددة. يمكن دمج المعاملات المنطقية مع جمل if لتطوير منطق البرمجة بشكل فعال.

المثال:

javascript
let temperature = 30; let isRaining = false; if (temperature > 20 && !isRaining) { console.log("الطقس جميل اليوم"); } else { console.log("الطقس غير مناسب"); }

هنا، سيتم طباعة “الطقس جميل اليوم” فقط إذا كانت درجة الحرارة أكثر من 20 ولم يكن الجو ممطرًا.

8. القيم المفقودة والـ “short-circuiting”

تُعتبر العملية المنطقية “AND” (&&) و “OR” (||) في جافاسكربت أكثر كفاءة عند العمل مع القيم المفقودة. في جافاسكربت، يتم استخدام خاصية الـ “short-circuiting” حيث لا تقوم جافاسكربت بتقييم كل جزء من العملية إذا كان من الواضح أن النتيجة النهائية معروفة.

المثال:

javascript
let user = null; let username = user && user.name; // لن يتم الوصول إلى user.name console.log(username); // ستكون النتيجة null

في المثال السابق، بما أن user هو null، فإن جافاسكربت تقوم بإرجاع null فورًا دون محاولة الوصول إلى user.name.

9. الجمع بين المعاملات المنطقية

في بعض الحالات، قد تحتاج إلى الجمع بين عدة معاملات منطقية لإنشاء شروط معقدة أكثر. يمكنك استخدام المعاملات المنطقية معًا لتحقيق هذا الهدف.

المثال:

javascript
let age = 25; let isStudent = true; let isEmployee = false; if ((age >= 18 && age <= 30) || (isStudent && !isEmployee)) { console.log("أنت مؤهل للحصول على الخصم"); } else { console.log("أنت غير مؤهل للحصول على الخصم"); }

في المثال، إذا كان عمر الشخص بين 18 و30 عامًا، أو كان شخصًا طالبًا وليس موظفًا، فيمكنه الحصول على الخصم.

10. الخلاصة

المعاملات المنطقية في جافاسكربت هي جزء أساسي لا غنى عنه في البرمجة، حيث تتيح للمطورين اتخاذ قرارات بناءً على شروط منطقية متعددة. باستخدام المعاملات &&, ||, و !، يمكن تحقيق منطق معقد للتحكم في تدفق البرنامج بشكل فعال. بالإضافة إلى ذلك، يمكن استخدام القيم الحقيقة والكاذبة في المعاملات المنطقية لتبسيط كتابة الكود وتحقيق نتائج دقيقة في أقصر وقت ممكن.