! nie le résultat de tout ce qui est à droite. Alors !! nie la valeur niée, se terminant ainsi par ce qui était à l'origine à droite.
modifier: ce qui précède est vrai si vous avez des valeurs booléennes, les résultats peuvent varier pour d'autres types ...
Edit2 d'élaborer un peu plus: !! est un opérateur de "type cast" de toutes sortes. Si vous avez une valeur booléenne sur la droite, rien ne se passera. Si vous avez quelque chose d'autre qu'une valeur booléenne sur la droite, alors la première! convertira tout ce qui est à droite en la "version" booléenne de cette valeur, et la seconde! annulera cette valeur. Un peu comme dire: renvoie la vraie valeur d'une valeur non booléenne. Espérons que cela a du sens :)
Voir aussi http://stackoverflow.com/questions/1406604/what-does-operator-mean-in-javascript – tttppp
double: http://stackoverflow.com/ questions/784929/what-is-the-operator-in-javascript –
duplicata du rapport en double! –