ماذا يفعل العامل !! (علامتا تعجب) في JavaScript؟
مرحبًا أيها الزملاء! أنا مبتدئ في JavaScript وصادفت كودًا غريبًا. في أحد المشاريع رأيت هذا البناء:
```javascript
const isActive = !!someValue;
```
أفهم أن `!` هو النفي المنطقي (NOT). لكن لماذا كتابة علامتي تعجب متتاليتين؟ ماذا يعني هذا؟ حاولت إزالة علامة واحدة — تعطل الكود. حاولت إزالة كلتيهما — أيضًا لا يعمل كما يجب.
قرأت أن `!!` هو نوع من "العوامل"، لكني لم أجده في الوثائق الرسمية. هل هي خدعة؟ أم مجرد خطأ في الكود ينسخه الجميع؟ هل هناك طريقة أكثر وضوحًا لفعل نفس الشيء؟
اشرحوا لي، من فضلكم، بكلمات بسيطة، لماذا هذا مطلوب، ولماذا هو شائع جدًا في مجتمع JavaScript. يُفضل مع أمثلة لتوضيح كيفية عمله مع أنواع البيانات المختلفة: strings، numbers، objects، null و undefined. شكرًا مقدمًا!
<<>>
ما هو !! (النفي المزدوج) في الحقيقة؟
في الواقع !! هو ليس عاملًا في JavaScript، بل هو استخدام مزدوج للعامل ! (النفي المنطقي).