Heim  >  Artikel  >  Web-Frontend  >  Was bewirkt der Doppeltilde-Operator (~~) in JavaScript?

Was bewirkt der Doppeltilde-Operator (~~) in JavaScript?

DDD
DDDOriginal
2024-10-25 11:39:02890Durchsuche

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

Doppelter Tilde-Operator: Ein tieferer Einblick in ~~

In JavaScript stoßen Sie möglicherweise auf den ~~-Operator, auch bekannt als „ Doppeltilde-Operator. Während die einzelne Tilde ~ das bitweise NICHT darstellt, fragen Sie sich vielleicht, welche Rolle die doppelte Tilde spielt.

Entgegen der Intuition führt ~~ kein NOT oder eine NOT-Operation aus. Stattdessen wandelt es seine Operanden implizit in 32-Bit-Ganzzahlen um und entfernt alles nach dem Komma. Dieses Verhalten gilt sowohl für Zahlen als auch für Zeichenfolgen.

Technisch gesehen verhält sich ~~ wie die folgende Funktion:

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

Sie liefert jedoch nur dann genaue Ergebnisse, wenn der Operand x im Bereich von liegt -(2^31) bis 2^31 - 1. Außerhalb dieses Bereichs kommt es zu einem Überlauf, der zum „Umbrechen“ der Zahl führt.

Es mag verlockend erscheinen, ~~ für die numerische Analyse von String-Argumenten zu verwenden , aber davon wird abgeraten. Überlauf und Unrichtigkeit bei Nicht-Ganzzahlen machen es zu einer schlechten Wahl. Bevorzugen Sie stattdessen x oder Number(x).

Doppelte Tilde als NOT von NOT verstehen

Um zu verstehen, wie ~~ effektiv eine NOT- oder NOT-Operation durchführt, betrachten Sie Folgendes folgendes Beispiel:

Die Zahl -43,2 wird als vorzeichenbehaftete 32-Bit-Binärzahl dargestellt:

-43.2 = 11111111111111111111111111010101 (2)

Bitweise Anwendung NICHT:

NOT -43.2 = 00000000000000000000000000101010 (2) = 42

Eine zweite Anwendung von Bitweises NICHT:

NOT 42 = 11111111111111111111111111010101 (2) = -43

Beachten Sie, dass der ~~-Operator das gleiche Ergebnis wie zwei aufeinanderfolgende bitweise NICHT-Operationen erzeugt, auch wenn er das NICHT einer NICHT-Operation nicht auf einfache Weise ausführt.

Das obige ist der detaillierte Inhalt vonWas bewirkt der Doppeltilde-Operator (~~) in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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