Si vous lisez les commentaires sur le site jQuery inArray
page ici Il s'agit d'une déclaration intéressante :
!!~jQuery.inArray(elm, arr)
Je pense qu'un double point d'exclamation convertira le résultat en type boolean
avec la valeur de true
. Ce que je ne comprends pas, c'est l'utilité du tilde ( ~
) dans tout cela ?
var arr = ["one", "two", "three"];
if (jQuery.inArray("one", arr) > -1) { alert("Found"); }
Refonte de la if
déclaration :
if (!!~jQuery.inArray("one", arr)) { alert("Found"); }
Répartition :
jQuery.inArray("one", arr) // 0
~jQuery.inArray("one", arr) // -1 (why?)
!~jQuery.inArray("one", arr) // false
!!~jQuery.inArray("one", arr) // true
J'ai également remarqué que si je mets le tilde devant, le résultat est le suivant -2
.
~!!~jQuery.inArray("one", arr) // -2
Je ne comprends pas l'utilité du tilde ici. Quelqu'un peut-il m'expliquer ou m'indiquer une ressource ?