Il cache l'intention de ce code.
C'est deux tilde unique opérateurs, de sorte qu'il n'est un complément bit à bit (not au niveau du bit) deux fois. Les opérations prennent les uns des autres, de sorte que le seul effet est la conversion qui est fait avant le premier opérateur est appliqué, c'est à dire la conversion de la valeur d'un nombre entier.
Certains l'utilisent comme une alternative plus rapide à l' Math.floor
, mais la différence de vitesse n'est pas si dramatique, et dans la plupart des cas, c'est juste le micro d'optimisation. Sauf si vous avez un morceau de code qui a vraiment besoin d'être optimisé, vous devez utiliser le code qui décrivent ce qu'il fait au lieu de code qui utilise un effet secondaire d'un non-fonctionnement.
Mise à jour 2011-08:
Avec l'optimisation du moteur de JavaScript dans les navigateurs, les performances pour les opérateurs et les fonctions de changement. Avec les navigateurs actuels, à l'aide de ~~
au lieu de Math.floor
est un peu plus rapide dans certains navigateurs, et pas plus rapide dans certains navigateurs. Si vous avez vraiment besoin d'un peu plus de performances, vous devez écrire différents optimisé le code pour chaque navigateur.
Voir: tilde vs étage