Maison > interface Web > js tutoriel > le corps du texte

## Que fait l'opérateur ~~ en JavaScript ?

Barbara Streisand
Libérer: 2024-10-25 12:55:03
original
562 Les gens l'ont consulté

## What Does the ~~ Operator Do in JavaScript?

Déchiffrer l'opérateur ~~ en JavaScript

En fouillant dans une bibliothèque de physique de jeu, vous avez peut-être rencontré l'énigmatique opérateur ~~. Sa ressemblance avec l’opérateur ~ (bitwise NOT) incite à s’interroger sur sa fonctionnalité. S'agit-il simplement d'une double négation, renvoyant la même valeur ?

Étonnamment, l'opérateur ~~ transcende en fait ses origines NOT au niveau du bit. Il a un objectif unique en JavaScript : éliminer tout ce qui se trouve après le point décimal.

Raisonnement derrière la suppression du point décimal

Ce comportement découle de la conversion implicite des opérandes en 32 signés. -des entiers binaires avant que les opérations au niveau du bit ne soient effectuées. Par conséquent, l'opérateur ~~ se comporte comme suit :

function(x) {
  if(x < 0) return Math.ceil(x);
  else return Math.floor(x);
}
Copier après la connexion

Cependant, il est crucial de noter que cette conversion n'est applicable que lorsque la valeur d'entrée (x) est comprise entre -(2^31) et 2^31 - 1. Le dépassement de ces limites entraîne un débordement de données, conduisant potentiellement à un comportement inattendu.

Avantages et inconvénients de l'utilisation de ~~

Malgré sa capacité à convertir des chaînes en nombres, l'utilisation de ~~ doit être abordée avec prudence en raison de sa susceptibilité au débordement. De plus, son objectif n’est pas entièrement aligné sur les conversions numériques. Au lieu de cela, x ou Number(x) offrent des options plus fiables et intuitives.

Bitwise NOT Logic

Pour comprendre pourquoi ~~ agit comme une double négation pour 32 bits entiers, considérons l'exemple de -43.2 :

  • -43.2 en binaire : 1111111111111111111111111010101
  • Bitwise NOT : Inverse tous les bits, résultant en 00000000000000000000000000101010
  • Double négation : Inverse à nouveau tous les bits, rétablissant la représentation binaire d'origine : 111111111111111111111111010101
  • Conversion décimale : -43,0

Cette double négation "inverse" effectivement les données à leur état initial avant la troncature décimale.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!