Zusammenfassung ungewöhnlicher JS-Operationsoperatoren

Zusammenfassung ungewöhnlicher JS-Operationsoperatoren

1. Einleitung

Es gibt viele Operatoren in js, die in früheren Artikeln erwähnt wurden. Zum Beispiel:

js-Ganzzahloperationen:

Mit |0 und ~~ können Gleitkommazahlen in Ganzzahlen umgewandelt werden. Die Effizienz ist höher als bei ähnlichen parseInt und Math.round Methoden. Dies ist sehr nützlich bei der Verarbeitung von Pixel- und Animationsverschiebungseffekten. Einen Leistungsvergleich finden Sie hier.

var foo = (12,4 / 4,13) | 0; // das Ergebnis ist 3
var bar = ~~(12.4 / 4.13); //Das Ergebnis ist 3


Es gibt nämlich noch einen anderen kleinen Trick !!2 Ausrufezeichen lässt sich ein Wert schnell in einen Booleschen Wert umwandeln. Testen Sie es!

var eee="eee";
Alarm(!!eee)


Dies sind einige Operatoren. Weitere Einzelheiten finden Sie unter 49 JavaScript-Tipps und Tricks. Der JS-Operator einzelner vertikaler Strich "|"

Heute möchte ich noch ein paar Dinge hinzufügen:

2. Komma-Operator

sei x = 1;
x = (x++, x);
console.log(x);
// erwartete Ausgabe: 2
x = (2, 3);
console.log(x);
// erwartete Ausgabe: 3

Der Kommaoperator wertet das Argument auf der linken Seite vor dem Argument auf der rechten Seite aus. Anschließend wird der Wert des äußersten rechten Arguments zurückgegeben.

var a = 10, b = 20;

Funktion KommaTest(){
    gebe a++, b++, 10 zurück;
}

var c = KommaTest();

alert(a); // gibt 11 zurück
alert(b); // gibt 21 zurück
alert(c); // gibt 10 zurück

Nachdem wir nun die Aufruffunktionsoperatoren kennen, wollen wir anhand eines Beispiels veranschaulichen, wie ihre Konflikte behandelt werden.

alert(2*5, 2*4); // Ausgabe 10

Der obige Code gibt 10 aus, aber wenn er nach dem Prinzip des Kommaoperators interpretiert wird, sollte er 8 ausgeben. Warum?

Da der Kommaoperator in JavaScript die niedrigste Priorität hat, ist es sehr nützlich, sich dies zu merken. Daher wird der Funktionsaufrufoperator vor dem Kommaoperator ausgeführt. Als Ergebnis gibt die Alert-Funktion den Wert des ersten Parameters aus. Ändern Sie den obigen Code wie unten gezeigt.

alert((2*5, 2*4)); // gibt 8 zurück

3. JavaScript-Null-Koaleszenzoperator (??)

Der null -Koaleszenzoperator (??) ist ein logischer Operator, der den rechten Operanden nur dann zurückgibt, wenn der linke Operand null oder undefined ist, andernfalls gibt undefined den linken Operanden zurück.

Dies unterscheidet sich vom logischen ODER-Operator (||), der den rechten Operanden zurückgibt, wenn der linke Operand falsch ist. Das heißt, wenn Sie || verwenden, um Standardwerte für bestimmte Variablen festzulegen, kann es zu unerwartetem Verhalten kommen. Zum Beispiel, wenn es falsch ist (z. B. „“ oder 0). Siehe Beispiel unten.

let str = null||undefiniert
let result = str??'haorooms blog'
console.log(Ergebnis)//haorooms-Blog const nullValue = null;
const emptyText = ""; // Leere Zeichenfolge, ein falscher Wert, Boolean("") === false
const eineZahl = 42;

const valA = nullValue ?? „der Standardwert von valA“;
const valB = emptyText ?? "Der Standardwert von valB";
const valC = irgendeineZahl ?? 0;

console.log(valA); // "Standardwert von valA"
console.log(valB); // "" (Leere Zeichenfolge ist falsch, aber nicht null oder undefiniert)
konsole.log(valC); // 42

4. optionaler Verkettungsoperator in JavaScript (?.)

Der optionale Verkettungsoperator ( ?. ) ermöglicht das Lesen des Werts einer Eigenschaft, die tief in einer Kette verbundener Objekte liegt, ohne explizit überprüfen zu müssen, ob jede Referenz in der Kette gültig ist. Der ?.-Operator funktioniert ähnlich wie der .-Verkettungsoperator, mit dem Unterschied, dass er keinen Fehler verursacht, wenn die Referenz null (null oder undefiniert) ist und der Ausdruck den Rückgabewert kurzschließt.

Bei Verwendung des optionalen Verkettungsoperators ( ?. ) beschwert sich der Browser nicht!

const demo = {
    Name: 'haorooms',
    Katze: {
        Name: ‚Haorooms-Katze‘
    }
};
Konsole.log(demo.dog?.name); 
// erwartete Ausgabe: undefiniert
konsole.log(demo.was?.());
// erwartete Ausgabe: undefiniert


Funktionsaufruf:

let result = someOne.benutzerdefinierteMethode?.();

Wenn Sie zulassen möchten, dass someOne null oder undefined ist, müssen Sie someOne?.customMethod?.() wie folgt schreiben:

Optionale Verkettung mit Ausdrücken:

let nestedProp = obj?.['prop' + 'Name'];

Optionale Verkettung zum Zugriff auf Arrays:

Lassen Sie arrayItem = arr?.[42];

Kurzschlussberechnung:

lass potenziellNullObj = null;
sei x = 0;
let prop = potenziellNullObj?.[x++];

 
console.log(x); // x wird nicht erhöht und gibt weiterhin 0 aus

//Wenn bei Verwendung optionaler Verkettung in einem Ausdruck der linke Operand null oder undefiniert ist, wird der Ausdruck nicht ausgewertet let customer = {
  Name: "haorooms",
  Details: { Alter: 82 }
};

let customerCity = customer?.city ?? "Stadt";
console.log(Kundenstadt); // "China"

Dies ist das Ende dieses Artikels über die Zusammenfassung ungewöhnlicher JS-Operationsoperatoren. Weitere relevante Inhalte zu JS-Operationsoperatoren finden Sie in den vorherigen Artikeln von 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:
  • JavaScript-Operatoren wurden so ausführlich erklärt wie nie zuvor
  • JavaScript-Grundlagenoperatoren
  • Zusammenfassung ungewöhnlicher Operatoren und Operatoren in js
  • Zusammenfassung einiger effizienter magischer Operatoren in JS
  • Verwenden Sie in JS nicht mehr überall Operatoren für absolute Gleichheit.
  • Werfen wir einen Blick auf die gleiche alte JS-Operator-Erklärung

<<:  Detaillierter Prozess zur Verwendung von Vscode in Kombination mit Docker für die Entwicklung

>>:  CSS implementiert einen Popup-Fenstereffekt mit einer Maskenebene, die geschlossen werden kann

Artikel empfehlen

HTML+CSS zum Erstellen eines Dropdown-Menüs

1. Beispiel einer Dropdown-Liste Der Code lautet ...

Diskussion über die Möglichkeit zum Öffnen von Website-Hyperlinks

Ein neues Fenster wird geöffnet. Vorteile: Wenn d...

So fügen Sie Wettervorhersagen in Ihre Website ein

Wir hoffen, dass wir durch die Einbindung der Wet...

Implementierung der MySQL-Datendesensibilisierung (Telefonnummer, ID-Karte)

1. Erklärung zur Datendesensibilisierung Bei den ...

So installieren und ändern Sie das Anfangskennwort von mysql5.7.18

Informationen zur Centos-Installation von MySQL f...

Detaillierte Erläuterung des Datenreaktionsprinzips von Vue

Dieser Artikel richtet sich hauptsächlich an diej...

Detaillierte Analyse jeder Phase der HTTP-Anforderungsverarbeitung von Nginx

Beim Schreiben des HTTP-Moduls von nginx müssen d...

Verwendung der Vue3-Tabellenkomponente

Inhaltsverzeichnis 1. Ant Design Vue 1. Offiziell...

DIV-Hintergrund, halbtransparenter Text, nicht durchscheinender Stil

Der DIV-Hintergrund ist halbtransparent, aber die ...

So aktivieren Sie die JMX-Überwachung über Tomcat

Erstellen Sie eine Simulationsumgebung: Betriebss...

Zusammenfassung der englischen Namen chinesischer Schriftarten

Wenn Sie in CSS die Eigenschaft „font-family“ ver...

Implementierung der MySQL-Mehrversions-Parallelitätskontrolle MVCC

Einstellungen für die Transaktionsisolationsebene...

Auszeichnungssprachen – Was lernen, nachdem man HTML gelernt hat?

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...