Que signifie !! (double point d'exclamation) en JavaScript ?
Bonjour à tous ! Je viens de commencer à apprendre JavaScript et je suis tombé sur une construction étrange dans le code de quelqu'un d'autre. Il y avait écrit quelque chose comme :
```javascript
let isActive = !!someValue;
```
Je comprends qu'un seul point d'exclamation `!` est la négation logique "NON", qui inverse la valeur (transforme `true` en `false` et vice versa). Mais pourquoi écrire deux points d'exclamation à la suite ? N'est-ce pas la même chose que d'écrire simplement `!(!someValue)` ? Ou est-ce un opérateur spécial que je ne connais pas ?
J'ai essayé de jouer dans la console du navigateur :
```javascript
console.log(!!"hello"); // true
console.log(!!0); // false
console.log(!!""); // false
console.log(!!null); // false
console.log(!!undefined); // false
console.log(!!42); // true
```
Les résultats sont un peu étranges.