🧮 مشغلات المقارنة في جافا سكريبت: لغتك لمقارنة أي شيء! ✨

مرحباً بك في عالم صنع القرار في البرمجة! 🧠 تخيل أنك تريد أن يقرر برنامجك ما إذا كان الطالب قد نجح (علامته أكبر من ٥٠)، أو ما إذا كان المخزون قد نفد (الكمية تساوي صفر). هنا يأتي دور مشغلات المقارنة (Comparison Operators). هي ببساطة رموز نستخدمها لمقارنة قيمتين وإعطائنا نتيجة المقارنة على شكل true (صحيح) أو false (خطأ). هذه النتيجة هي الوقود الذي يشغل تعليمات مثل if التي سنتعلمها لاحقاً.


📝 ما هي مشغلات المقارنة؟

مشغلات المقارنة هي أدوات منطقية تقارن بين قيمة على اليسار وقيمة على اليمين، ثم تُرجع (return) نتيجة المقارنة كقيمة منطقية (Boolean)، وهي إما true أو false فقط.

الصيغة العامة:

value1 operator value2
// النتيجة: true أو false

🔢 أنواع مشغلات المقارنة الأساسية

دعنا نتعرف على المشغلات الأساسية واحداً تلو الآخر مع أمثلة بسيطة جداً.

1. المساواة (==) وعدم المساواة (!=)

  • == (يساوي): يتحقق مما إذا كانت القيمتان متساويتين في القيمة، حتى لو كان نوعهما مختلفاً (مثل مقارنة رقم مع نص).
  • != (لا يساوي): عكس المساواة، يتحقق مما إذا كانت القيمتان غير متساويتين في القيمة.
// مثال على المساواة (==)
console.log(10 == 10);    // true (الرقم 10 يساوي الرقم 10)
console.log(10 == "10");  // true (الرقم 10 يساوي النص "10" بعد التحويل)
console.log(5 == 8);      // false

// مثال على عدم المساواة (!=)
console.log(10 != 5);     // true (10 لا يساوي 5)
console.log("hello" != "hello"); // false (النصان متساويان)
console.log(20 != "20");  // false (متساويان في القيمة بعد التحويل)

2. المساواة الصارمة (===) وعدم المساواة الصارمة (!==)

  • === (يساوي تماماً): يتحقق مما إذا كانت القيمتان متساويتين في القيمة وفي النوع. هذا هو المشغل الموصى باستخدامه في أغلب الأحيان لأنه أكثر دقة.
  • !== (لا يساوي تماماً): عكس المساواة الصارمة.
// مثال على المساواة الصارمة (===)
console.log(10 === 10);      // true (نفس القيمة ونفس النوع: رقم مع رقم)
console.log(10 === "10");    // false (نفس القيمة، لكن أنواع مختلفة: رقم مقابل نص)
console.log(true === 1);     // false (نوع boolean مقابل نوع number)

// مثال على عدم المساواة الصارمة (!==)
console.log(10 !== "10");    // true (أنواع مختلفة)
console.log(5 !== 5);        // false (متساويان تماماً في القيمة والنوع)

💡 نصيحة ذهبية: لتجنب الأخطاء الغريبة في برامجك، احرص على استخدام === و !== في معظم مقارناتك بدلاً من == و !=.

3. أكبر من (>) وأصغر من (<)

  • > (أكبر من): يتحقق مما إذا كانت القيمة على اليسار أكبر من القيمة على اليمين.
  • < (أصغر من): يتحقق مما إذا كانت القيمة على اليسار أصغر من القيمة على اليمين.
console.log(15 > 10); // true (15 أكبر من 10)
console.log(5 > 12);  // false
console.log(3 < 7);   // true (3 أصغر من 7)
console.log(10 < 10); // false (10 ليست أصغر من 10، إنها تساويها)

4. أكبر من أو يساوي (>=) وأصغر من أو يساوي (<=)

  • >= (أكبر من أو يساوي): يتحقق مما إذا كانت القيمة على اليسار أكبر أو تساوي القيمة على اليمين.
  • <= (أصغر من أو يساوي): يتحقق مما إذا كانت القيمة على اليسار أصغر أو تساوي القيمة على اليمين.
console.log(10 >= 5);  // true (10 أكبر من 5)
console.log(10 >= 10); // true (10 تساوي 10)
console.log(5 >= 10);  // false

console.log(8 <= 12);  // true (8 أصغر من 12)
console.log(8 <= 8);   // true (8 تساوي 8)
console.log(15 <= 8);  // false

🧪 أمثلة عملية واقعية

لنطبق ما تعلمناه على سيناريوهات قد تواجهها في برمجة موقع حقيقي.

المثال 1: التحقق من عمر المستخدم لدخول موقع

let userAge = 16;
let minimumAge = 18;

let canEnter = userAge >= minimumAge; // هل العمر أكبر أو يساوي 18؟
console.log("هل يمكن للمستخدم الدخول؟", canEnter); // false

المثال 2: التحقق من كلمة المرور

let enteredPassword = "123456";
let correctPassword = "123456";

let isPasswordCorrect = enteredPassword === correctPassword; // هل هما متطابقان تماماً؟
console.log("كلمة المرور صحيحة؟", isPasswordCorrect); // true

المثال 3: إنذار نقص المخزون

let productQuantity = 2;
let lowStockThreshold = 5;

let isStockLow = productQuantity <= lowStockThreshold; // هل الكمية أقل أو تساوي الحد الأدنى؟
console.log("هل المخزون منخفض؟", isPasswordCorrect); // true (يجب إعادة التزويد!)

🧠 ملخص سريع

المشغل الاسم المثال النتيجة
== يساوي 5 == "5" true
=== يساوي تماماً 5 === "5" false
!= لا يساوي 10 != 5 true
!== لا يساوي تماماً 10 !== "10" true
> أكبر من 15 > 10 true
< أصغر من 3 < 7 true
>= أكبر من أو يساوي 10 >= 10 true
<= أصغر من أو يساوي 8 <= 8 true

🧭 ماذا سنتعلم في الدرس القادم؟

الآن وقد أصبحت قادراً على مقارنة القيم والحصول على إجابة true أو false، السؤال الكبير هو: ماذا أفعل بهذه الإجابة؟ 🤔 في الدرس القادم، سنخطو خطوة حاسمة نحو جعل برامجنا "ذكية" وقادرة على اتخاذ قرارات مختلفة بناءً على نتيجة هذه المقارنات. سنتعلم عن العبارات الشرطية (Conditional Statements)، وتحديداً if و else، والتي تسمح لبرنامجك بتنفيذ كتلة معينة من الكود فقط إذا تحقق شرط معين. استعد لكتابة برامج تفاعلية حقيقية! 🚀