Duplicata possible :
Qu'est-ce que le ! !! (pas pas) en JavaScript ?
Que signifie l'opérateur ! ! (double point d'exclamation) en JavaScript ?
Je déboguais un code et je suis tombé sur ça :
var foo.bar = 0; // this is actually passed from another function, adding it for context
function(foo)
var someVar = !!foo.bar;
if(foo.bar){
// ..stuff happens
}
else{
// .. something else happens
}
}
Ok, ma question est : quel est l'intérêt de ! !? Tout ce que cela fait est de rendre le 0 === faux. A. Y a-t-il un avantage à utiliser cette méthode par rapport à boolean(foo.bar) ?
B. foo.bar peut être évalué dans un if tel quel car 0 === false déjà, alors pourquoi passer par la conversion ? (someVar n'est pas réutilisé ailleurs)
Je suis juste un peu curieux...
Merci d'avance !
2 votes
Je sais ce qu'il fait, je veux juste savoir quel est l'avantage qui n'est pas expliqué dans votre question.
0 votes
0==false
pas0===false
le triple égal empêche la tentative implicite de lancer.