Heim > Web-Frontend > js-Tutorial > Hauptteil

## Was macht der ~~-Operator in JavaScript?

Barbara Streisand
Freigeben: 2024-10-25 12:55:03
Original
562 Leute haben es durchsucht

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

Entschlüsselung des ~~-Operators in JavaScript

Beim Stöbern in einer Spielphysik-Bibliothek sind Sie vielleicht auf den rätselhaften ~~-Operator gestoßen. Seine Ähnlichkeit mit dem ~-Operator (bitweises NOT) veranlasst Sie, seine Funktionalität in Frage zu stellen. Handelt es sich lediglich um eine doppelte Negation, die denselben Wert zurückgibt?

Überraschenderweise überschreitet der ~~-Operator tatsächlich seine bitweisen NOT-Ursprünge. Es erfüllt einen einzigartigen Zweck in JavaScript: das Entfernen aller Dinge nach dem Dezimalpunkt.

Gründe für die Dezimalpunktentfernung

Dieses Verhalten ist auf die implizite Konvertierung von Operanden in vorzeichenbehaftete 32 zurückzuführen -Bit-Ganzzahlen, bevor bitweise Operationen ausgeführt werden. Folglich verhält sich der ~~-Operator wie folgt:

function(x) {
  if(x < 0) return Math.ceil(x);
  else return Math.floor(x);
}
Nach dem Login kopieren

Es ist jedoch wichtig zu beachten, dass diese Konvertierung nur anwendbar ist, wenn der Eingabewert (x) im Bereich von -(2^31) bis liegt 2^31 - 1. Das Überschreiten dieser Grenzen führt zu einem Datenüberlauf, der möglicherweise zu unerwartetem Verhalten führt.

Vor- und Nachteile der Verwendung von ~~

Trotz seiner Fähigkeit zur Konvertierung Wenn Sie Zeichenfolgen in Zahlen umwandeln, sollte die Verwendung von ~~ wegen der Anfälligkeit für Überläufe mit Vorsicht angegangen werden. Darüber hinaus ist der beabsichtigte Zweck nicht vollständig auf numerische Umrechnungen abgestimmt. Stattdessen bieten x oder Number(x) zuverlässigere und intuitivere Optionen.

Bitweise NICHT-Logik

Um zu verstehen, warum ~~ als doppelte Negation für 32-Bit fungiert Ganzzahlen, betrachten wir das Beispiel von -43,2:

  • -43,2 in Binärform: 111111111111111111111111111010101
  • Bitweise NICHT: Invertiert alle Bits, was zu 0000000000000000000000000101010 führt 🎜>Dezimalkonvertierung:
  • -43,0
  • Diese doppelte Negation „kehrt“ die Daten effektiv in ihren ursprünglichen Zustand vor der Dezimalkürzung um.

Das obige ist der detaillierte Inhalt von## Was macht der ~~-Operator in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!