Je comprends what the double not operator does in JavaScript. Je suis curieux à propos de son utilisation et si oui ou non une affirmation récente que j'ai faite est correcte.Quand utiliser l'opérateur double not (!!) en JavaScript
dit que je ne if (!!someVar)
est significatif ni est (!!someVar && ...
parce que le if
et la &&
provoquera someVar à évaluer comme un booléen donc le !! est superflu. En fait, la seule fois où je pourrais penser qu'il serait légitime d'utiliser l'opérateur double not est si vous vouliez effectuer une comparaison stricte avec une autre valeur booléenne (donc peut-être en retour une valeur qui attend vrai ou faux explicitement).
Est-ce correct? J'ai commencé à douter moi-même quand j'ai remarqué jQuery 1.3.2 utilisé à la fois if (!!someVar)
et return !!someVar && ...
Le double n'a pas d'effet réel dans ces situations?
Mon opinion personnelle est que cela mène à la confusion. Si je vois une instruction if, je sais qu'elle l'évalue comme un booléen.
Notez que (comme Justin le fait remarquer dans sa réponse à la question que vous avez référencée http://stackoverflow.com/questions/1406604/what-does-the-operator-double-exclamation-point-mean-in-javascript/ 1407785 # 1407785), il n'y a pas d'opérateur double-not. '!!' applique simplement l'opérateur non deux fois. – outis
Cet 'opérateur' est la définition même de idiomatique ... À moins que vous ne sachiez de quoi il s'agit, vous risquez d'être confus ou simplement d'interpréter cela comme un «non». Je vais commencer à l'utiliser juste pour confondre mes collègues: D Si quelqu'un est intéressé, je l'ai vu dans le «sauvage» dans jQuery.grep – Sprague
connexes: [Quelle est la différence entre si (!! condition) et si (condition)] (http://stackoverflow.com/q/19818574/1048572) – Bergi