Zusammenfassung der Operatoroperationen, die in JavaScript sehr fehleranfällig sind

Zusammenfassung der Operatoroperationen, die in JavaScript sehr fehleranfällig sind

Arithmetische Operatoren

+ - * / % ()

Abnormale Situation 1: Operationen mit speziellen Wertliteralen

  • Operationen mit NaN: Die Ergebnisse sind alle NaN
  • Die Operationen, an denen Infinity teilnimmt, hängen von der Situation ab, zum Beispiel:
5/Unendlich=0
5%Unendlich=5
Unendlich%5=NaN
Unendlich+5=Unendlich
Unendlich / Unendlich = NaN
Unendlich – Unendlich = NAN
Unendlich % Unendlich = NAN

Operationen mit Sonderwerten werden in der Arbeit nicht verwendet und haben keine praktische Anwendungsbedeutung, Sie sollten sie jedoch verstehen, falls Sie in Vorstellungsgesprächen auf sie stoßen.

Abnormale Situation 2: Andere Datentypen sind an mathematischen Operationen beteiligt.

+-Operation mit Zeichenfolgen (einschließlich des Falls, in dem sich nur auf einer Seite des Symbols Zeichen befinden): Das +-Zeichen wird zu einem Bindestrich, der Vorder- und Rückseite verbindet, um die gesamte Zeichenfolge zu bilden.

Zum Beispiel:

        var a = 3 - "36" % 5 + "2" - 2
        konsole.log(a)
        var b = "36" % 5
        console.log(b)
        var c = 3 - "36" % 5 + "2"
        console.log(c)

Ausgabe:

20
1
zweiundzwanzig

Implizite Konvertierung: Mit Ausnahme der +-Operation mit Zeichenfolgen konvertiert der Computer in anderen Fällen, wenn alle anderen Datentypen an mathematischen Operationen beteiligt sind, andere Datentypen automatisch in numerische Typen, bevor er an der Operation teilnimmt. In diesem Prozess müssen keine Methoden wie parseInt() und Number() verwendet werden. Der Prozess wird heimlich durchgeführt. Dies ist ein impliziter Konvertierungsprozess.

Implizite Konvertierung

Andere Datentypen werden implizit in numerische Typen konvertiert:

  • Entsprechende Zahlen: Reine Zahlenfolgen werden in entsprechende Zahlen umgewandelt "123" → 123
  • Konvertiert in 1: wahr
  • Konvertiert in 0: false, null, "" leere Zeichenfolge, leere Zeichenfolge
  • In NaN konvertieren: undefinierte, nicht leere, nicht reine numerische Zeichenfolge

Vergleichsoperatoren

Wird auch als relationaler Operator bezeichnet. Ein Vergleichsoperator vergleicht seine Operanden und gibt einen booleschen Wert zurück. Das Ergebnis der Operation ist entweder wahr oder falsch.

> Größer als

< kleiner als

>= Größer als oder gleich

<= Kleiner als oder gleich

== ist gleich, bestimmt nur, ob der Wert gleich ist, nicht der Datentyp

!= Ungleich, das genaue Gegenteil von gleich

=== ist nicht nur gleich dem Wert, sondern auch dem Datentyp.

!== ist nicht gleich, was das genaue Gegenteil von gleich ist

Abnormaler Fall 1: Spezielle Werte nehmen an Vergleichsoperationen teil

  • NaN nimmt teil: Ungleich und Unvollständig gleich sind wahr, alle anderen sind falsch
  • Die Operationen, an denen Infinity teilnimmt, hängen von der Situation ab, zum Beispiel:
Unendlich == Unendlich -> Wahr
Unendlich === Unendlich -> Wahr
Unendlich > Unendlich -> Falsch
Unendlich >= Unendlich ->Wahr

Abnormale Situation 2: Andere Datentypen nehmen an Vergleichsoperationen teil (ausgenommen String-zu-String-Vergleiche)

Auch andere Datentypen werden zum Vergleich implizit in Zahlen umgewandelt.

„123“→123 wahr→1 falsch→0 null→0 undefiniert→NaN „“→0 „abc“→NaN

Die Beurteilung von Null ist etwas Besonderes: Wenn Null und 0 beurteilt werden, ist Gleichheit falsch, >= und <= sind wahr

null == undefiniert -> Wahr

Abnormale Situation 3: String-zu-String-Vergleich

Es erfolgt keine implizite Konvertierung in Zahlen, sondern die beiden Zeichenfolgen werden in Unicode-Reihenfolge verglichen.

Zeichenkodierungsreihenfolge: von vorne nach hinten 0-9, AZ, az, die vordere ist kleiner als die hintere

Beim Vergleichen ist die Länge der beiden Zeichenfolgen nicht wichtig. Der Vergleich beginnt beim ersten Zeichen und wird fortgesetzt, bis die Größe ermittelt ist. Es werden keine weiteren Vergleiche durchgeführt.

Logische Operatoren

Logische Operatoren werden häufig zwischen Booleschen Werten verwendet; wenn die Operanden beide Boolesche Werte sind, ist der Rückgabewert ebenfalls ein Boolescher Wert.

&& Logischer UND-Operator
|| Logischer ODER-Operator
! Logischer NOT-Operator

Abnormale Situation

  • Neben Booleschen Werten können auch Werte anderer Datentypen an logischen Operationen teilnehmen. Während der Operation muss der Operand implizit in einen Booleschen Wert konvertiert werden, um an der Beurteilungsberechnung teilzunehmen, und das endgültige Operationsergebnis sind immer noch die Daten an einer bestimmten Position im Original.
  • Nicht alle logischen Operationen geben Boolesche Werte zurück. Das von anderen Daten erhaltene Ergebnis sind die Daten selbst.

Regeln für die implizite Konvertierung in Boolesche Werte

  • In „false“ konvertieren: NaN, 0, „“ leere Zeichenfolge, null, undefiniert
  • In „true“ konvertieren: ungleich 0, ungleich NaN-Zahl, ungleich leere Zeichenfolge

Wenn sie auf nicht-boolesche Werte verwendet werden, kann der Rückgabewert ein nicht-boolescher Wert sein. Tatsächlich ist dieser Vorgang sehr einfach:

  • (logisches UND a && b) Wenn a in false umgewandelt werden kann, gib a zurück, andernfalls gib b zurück.
  • (logisch oder a || b) Wenn a in „true“ umgewandelt werden kann, gib a zurück, andernfalls gib b zurück.

Logische Operatorreihenfolge der Operation

Umfassende Operationsreihenfolge: NICHT, UND, ODER

Zuweisungsoperatoren

= gleich
+= Addition und Gleichheit
-= minus gleich
*= Multiplikation ergibt
/= Dividieren durch ist gleich
%= Rest gleich
++ Inkrement
--Dekrementieren

Unäre Operatoren

++ -- !

Die Symbole ++ oder -- können vor oder nach einer Variablen geschrieben werden. Unterschiedliche Positionen können zu unterschiedlichen Ergebnissen bei der Programmausführung führen.

Nehmen wir ++ als Beispiel:

  • a++: Das Symbol ++ steht nach der Variable. Der ursprüngliche im Programm verwendete Wert von a++ wird nicht um 1 erhöht. Wenn die Variable a danach zum zweiten Mal verwendet wird, verwendet a den neuen Wert nach der Erhöhung um 1. Nehmen Sie zuerst teil und fügen Sie dann selbst hinzu.
  • ++a: Das Symbol ++ steht vor der Variable. Bei der Ausführung von ++a wird der neue Wert von a plus 1 verwendet. Bei der zweiten Verwendung der Variable a danach wird ebenfalls der neue Wert von a plus 1 verwendet. Erst hinzufügen, dann teilnehmen

Beispiel 1

var a = 3; 
var b = a++; 
var c = ++a;
konsole.log(a,b,c)

Ausgabe:

5 3 5

Beispiel 2

Ausgabe:

Operationspriorität

Priorität von der höchsten zur niedrigsten:

1. () hat die höchste Priorität

2. Unärer Operator ++ -- !

3. Arithmetische Operatoren sind * / % gefolgt von + -

4. Relationale Operatoren > >= < <=

5. Gleichheitsoperator == != === !==

6. Logische Operatoren && gefolgt von ||

7. Zuweisungsoperatoren

Beispiel

var a = 4; var num = 1 * (2 + 3) && a++ || 5 > 6 && 7 < 8 || !9; 
console.log(Nummer)

Ausgabe:

4

Zusammenfassen

Damit ist dieser Artikel mit der Zusammenfassung der fehleranfälligen Operatorberechnungen in JavaScript abgeschlossen. Weitere relevante Inhalte zu JavaScript-Operatorberechnungen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • js und oder Operator || && magische Verwendung
  • Detaillierte Erklärung der Operatoren || und && in js
  • Anwendungsbeispiele für ternäre Operatoren in JavaScript
  • Verwendung von Javascript typeof und Einführung des typeof-Operators [detailliert]
  • Javascript-Operator für bitweise Negation (~)
  • Verständnis und Analyse des bitweisen Nicht-(~)-Operators und des ~~-Operators von JS
  • Analyse und Beispiele des Unterschieds zwischen ternären Operatoren und if else in JS
  • Detaillierte Erklärung der Verwendung und Funktion des JS-Operators einzelner vertikaler Strich „|“ und „||“
  • Einführung in den bitweisen Linksverschiebungsoperator (<<) in Javascript
  • Lernen Sie die Operatoren der Potenzierung, Quadratwurzel und Variablenformatkonvertierung in JS kennen

<<:  Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.18

>>:  Detaillierte Erläuterung mehrerer Befehle in Linux zum Abrufen detaillierter Hardwareinformationen

Artikel empfehlen

Beispielcode zum Konvertieren von HTML-Tabellendaten in das JSON-Format

Die Javascript-Funktion zum Konvertieren von <t...

So erstellen Sie ein Apache-Image mit Dockerfile

Inhaltsverzeichnis 1. Docker-Image 2. Erstellen S...

Zusammenfassung der Wissenspunkte zum Abdecken von Indizes in MySQL

Wenn ein Index die Werte aller abzufragenden Feld...

XHTML-Erste-Schritte-Tutorial: Einfache Webseitenerstellung

Erstellen Sie Ihre erste Webseite in einer Minute...

So verwenden Sie Vue zum Implementieren von CSS-Übergängen und Animationen

Inhaltsverzeichnis 1. Der Unterschied zwischen Üb...

Detaillierte Erklärung des Unterschieds zwischen run/cmd/entrypoint in Docker

In Dockerfile können run, cmd und entrypoint zum ...

Einige Indikatoren für exzellentes Web-Frontend-Design

Die Barrierefreiheit von Webseiten scheint etwas z...

Über das Problem beim Schreiben von Plugins zum Mounten von DOM in vue3

Im Vergleich zu vue2 verfügt vue3 über ein zusätz...

Modularität in Node.js, npm-Paketmanager erklärt

Inhaltsverzeichnis Das Grundkonzept der Modularit...