Maison  >  Article  >  interface Web  >  Qu'est-ce que l'opérateur Double Tilded (~~) en JavaScript et comment se compare-t-il à Math.floor() ?

Qu'est-ce que l'opérateur Double Tilded (~~) en JavaScript et comment se compare-t-il à Math.floor() ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-01 09:05:02228parcourir

What is the Double Tilded Operator (~~) in JavaScript and How Does It Compare to Math.floor()?

Opérateur double tilded (~~) en JavaScript

Question :

Dans certains codes échantillons, l'opérateur "double tilde" (~~) est rencontré. Quel est son objectif et en quoi diffère-t-elle de la fonction Math.floor() ?

Réponse :

L'opérateur ~~ est un opérateur NOT Double Bitwise. Elle fournit un résultat numérique plus rapide et positif que la fonction Math.floor().

L'opération Double Bitwise NOT convertit le nombre en un entier de 32 bits, puis applique l'opérateur NOT au niveau du bit (~) deux fois. La valeur résultante est :

~~x = -(~~~x + 1)

Puisque l'opérateur ~ inverse les 0 et les 1 dans le modèle de bits, l'opération ~~ supprime efficacement la partie décimale du nombre positif en la tronquant vers zéro.

Différences par rapport à la fonction Math.floor() :

Bien que puisse être utilisé comme un substitut plus rapide à Math.floor() pour les nombres positifs, il ne donne pas le même résultat pour les nombres négatifs. supprime simplement la partie décimale, tandis que Math.floor() arrondit à l'entier le plus proche.

Exemple :

console.log(~~2.3); // Output: 2 (equivalent to Math.floor(2.3))
console.log(~~-2.3); // Output: -2 (different from Math.floor(-2.3) which equals -3)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn