¿Qué significa !! (doble signo de exclamación) en JavaScript?
¡Hola a todos! Acabo de empezar a aprender JavaScript y me encontré con una construcción extraña en el código de otra persona. Decía algo como:
```javascript
let isActive = !!someValue;
```
Entiendo que un signo de exclamación `!` es el "NOT" lógico, que invierte el valor (convierte `true` en `false` y viceversa). Pero, ¿por qué escribir dos signos de exclamación seguidos? ¿No es lo mismo que simplemente escribir `!(!someValue)`? ¿O es algún operador especial que no conozco?
Intenté experimentar en la consola del navegador:
```javascript
console.log(!!"hello"); // true
console.log(!!0); // false
console.log(!!""); // false
console.log(!!null); // false
console.log(!!undefined); // false
console.log(!!42); // true
```
Los resultados son un poco extraños: `!!"hello"` da `true`, aunque la cadena no está vacía. `!!0` da `false`, aunque 0 es un número. ¿Quizás esto tiene que ver con la coerción de tipos? Expliquen, por favor, para qué sirve este doble