Maison  >  Article  >  interface Web  >  ## Que fait réellement l'opérateur ~~ (Double Tilde) en JavaScript ?

## Que fait réellement l'opérateur ~~ (Double Tilde) en JavaScript ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-30 09:16:03204parcourir

## What Does the ~~ (Double Tilde) Operator Really Do in JavaScript?

Exploration de l'opérateur magique ~~ (Double Tilde) en JavaScript

Dans le domaine des aventures JavaScript, vous avez peut-être rencontré le mystérieux opérateur. À première vue, cela ressemble au tilde unique ~, un opérateur NOT fiable au niveau du bit. Cela signifie-t-il que effectue un double NOT, renvoyant simplement la même valeur ? Allons plus loin et découvrons son véritable objectif.

Dévoilement de la vérité

Le secret de l'opérateur réside dans la façon dont il interprète ses opérandes. Contrairement au tilde unique, convertit ses entrées en entiers signés de 32 bits, même s'il s'agit de nombres ou de chaînes. Avec cette conversion, il effectue des opérations au niveau du bit qui suppriment efficacement tout après la virgule décimale.

En d'autres termes, cet opérateur se comporte comme la fonction suivante :

<code class="javascript">function(x) {
  if(x < 0) return Math.ceil(x);
  else return Math.floor(x);
}</code>

Cependant, il ne fonctionne que correctement pour les valeurs comprises entre -(231) et 231 - 1 pour éviter les débordements.

Pourquoi ~~ n'est-il pas le NON du NON

Il est important de comprendre que n'équivaut pas à appliquer deux fois une opération NOT. Alors que la première opération NOT inverse les bits, la seconde les inverse simplement, ce qui donne la valeur d'origine. Au lieu de cela, tronque directement la partie décimale du nombre.

Par exemple, le nombre -43,2, représenté en binaire 32 bits comme :

<code class="binary">11111111111111111111111111010101</code>

Après avoir appliqué ~~, cela devient :

<code class="binary">11111111111111111111111111010101</code>

ce qui se traduit par -43. Cela démontre que ~~ supprime efficacement la partie fractionnaire du nombre.

Notes de mise en garde

Bien que ~~ puisse être utile pour convertir des arguments de chaîne en nombres, ses risques de débordement et les inexactitudes inhérentes aux nombres non entiers en font un choix risqué. Envisagez plutôt d'utiliser des méthodes plus simples comme x ou Number(x).

En conclusion, ~~ est un opérateur fascinant qui tronque les valeurs décimales des nombres ou des chaînes. En comprenant son comportement unique et ses limites, vous pouvez exploiter sa puissance de manière responsable dans vos aventures JavaScript.

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