Avatar ·

ما الفرق بين == و === في JavaScript؟ متى يجب استخدام كل عامل؟

```html مرحباً بالجميع! لقد بدأت للتو في تعلم JavaScript وواجهت موقفاً غير مفهوم بالنسبة لي. في الكود، كثيراً ما أرى عاملَي مقارنة متشابهين: `==` و `===`. في البداية اعتقدت أنهما يفعلان نفس الشيء، لكنني لاحظت بعد ذلك سلوكاً غريباً. على سبيل المثال، كتبت هذا الكود: ```javascript console.log(5 == "5"); // true console.log(5 === "5"); // false ``` لماذا في الحالة الأولى يقول JavaScript أن الرقم 5 والسلسلة النصية "5" متساويان، بينما في الحالة الثانية لا؟ ففي النهاية هما من نوعين مختلفين من البيانات! أو مثال آخر: ```javascript console.log(false == 0); // true console.log(false === 0); // false ``` لقد أصبحت مرتبكاً تماماً. هل يعني ذلك أن `false` و `0` هما نفس الشيء؟ لكن هذا ليس صحيحاً! `false` هي قيمة منطقية، بينما `0` هو رقم. أرجو منكم الشرح، ما الفرق بين هذين العاملين. متى يجب استخدام `==` ومتى `===`؟ ولماذا يوجد في JavaScript طريقتان مختلفتان للمقارنة؟ سأكون ممتناً جداً لشرح واضح مع أمثلة. ```