Avatar ·

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.