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!