JavaScript में !! (डबल एक्सक्लेमेशन मार्क) का क्या मतलब है?
सभी को नमस्ते! मैंने अभी JavaScript सीखना शुरू किया है और किसी और के कोड में एक अजीब कंस्ट्रक्शन देखा। वहाँ कुछ इस तरह लिखा था:
```javascript
let isActive = !!someValue;
```
मैं समझता हूँ कि एक एक्सक्लेमेशन मार्क `!` लॉजिकल "NOT" है, जो वैल्यू को इन्वर्ट करता है (`false` को `true` और इसके विपरीत)। लेकिन एक के बाद एक दो एक्सक्लेमेशन मार्क क्यों लिखें? क्या यह सिर्फ `!(!someValue)` लिखने जैसा नहीं है? या यह कोई स्पेशल ऑपरेटर है जो मुझे नहीं पता?
मैंने ब्राउज़र कंसोल में थोड़ा प्रयोग किया:
```javascript
console.log(!!"hello"); // true
console.log(!!0); // false
console.log(!!""); // false
console.log(!!null); // false
console.log(!!undefined); // false
console.log(!!42); // true
```
परिणाम कुछ अजीब हैं: `!!"hello"` से `true` मिलता है, हालाँकि स्ट्रिंग खाली नहीं है। `!!0` से `false` मिलता है, हालाँकि 0 एक नंबर है। शायद यह टाइप कन्वर्ज़न से संबंधित है? कृपया समझाएँ कि इस डबल एक्सक्लेमेशन मार्क की ज़रूरत क्यों है।