Heim > Web-Frontend > js-Tutorial > ## Was macht der Operator ~~ (Doppelte Tilde) in JavaScript wirklich?

## Was macht der Operator ~~ (Doppelte Tilde) in JavaScript wirklich?

Mary-Kate Olsen
Freigeben: 2024-10-30 09:16:03
Original
254 Leute haben es durchsucht

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

Erkundung des magischen Operators ~~ (Doppelte Tilde) in JavaScript

Im Reich der JavaScript-Abenteuer sind Sie vielleicht auf den mysteriösen Betreiber. Auf den ersten Blick ähnelt es der einzelnen Tilde ~, einem bewährten bitweisen NOT-Operator. Bedeutet das, dass ein doppeltes NOT ausführt und einfach denselben Wert zurückgibt? Tauchen wir tiefer ein und entdecken wir seinen wahren Zweck.

Die Wahrheit enthüllen

Das Geheimnis des

-Operators liegt in der Art und Weise, wie er seine Operanden interpretiert. Im Gegensatz zur einzelnen Tilde wandelt seine Eingaben in vorzeichenbehaftete 32-Bit-Ganzzahlen um, auch wenn es sich um Zahlen oder Zeichenfolgen handelt. Bei dieser Konvertierung führt er bitweise Operationen aus, die effektiv alles nach dem Dezimalpunkt entfernen.

Mit anderen Worten verhält sich dieser Operator wie die folgende Funktion:

<code class="javascript">function(x) {
  if(x < 0) return Math.ceil(x);
  else return Math.floor(x);
}</code>
Nach dem Login kopieren
Er funktioniert jedoch nur korrekt für Werte zwischen -(2

31) und 231 - 1, um einen Überlauf zu vermeiden.

Warum ~~ nicht das NICHT des NICHT ist

Es ist wichtig zu verstehen, dass

nicht gleichbedeutend mit der zweimaligen Anwendung einer NOT-Operation ist. Während die erste NOT-Operation die Bits invertiert, invertiert sie die zweite einfach wieder zurück, was zum ursprünglichen Wert führt. Stattdessen schneidet direkt den Dezimalteil der Zahl ab.

Zum Beispiel die Zahl -43,2, dargestellt in 32-Bit-Binärform als:

<code class="binary">11111111111111111111111111010101</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach der Anwendung von ~~, es wird zu:

<code class="binary">11111111111111111111111111010101</code>
Nach dem Login kopieren
Nach dem Login kopieren
was zurück zu -43 übersetzt wird. Dies zeigt, dass ~~ den Bruchteil der Zahl effektiv entfernt.

Vorsichtshinweise

Während ~~ für die Konvertierung von Zeichenfolgenargumenten in Zahlen nützlich sein kann, besteht die Gefahr eines Überlaufs und inhärente Ungenauigkeiten bei Nicht-Ganzzahlen machen es zu einer riskanten Wahl. Erwägen Sie stattdessen die Verwendung einfacherer Methoden wie x oder Number(x).

Zusammenfassend lässt sich sagen, dass ~~ ein faszinierender Operator ist, der Dezimalwerte aus Zahlen oder Zeichenfolgen abschneidet. Wenn Sie sein einzigartiges Verhalten und seine Einschränkungen verstehen, können Sie seine Leistungsfähigkeit in Ihren JavaScript-Abenteuern verantwortungsvoll nutzen.

Das obige ist der detaillierte Inhalt von## Was macht der Operator ~~ (Doppelte Tilde) in JavaScript wirklich?. 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