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