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

Implementierung der IP-Adresskonfiguration in Centos7.5

1. Bevor Sie die IP-Adresse konfigurieren, verwen...

Detaillierte Erklärung zum Anpassen des Stils von CSS-Bildlaufleisten

Dieser Artikel stellt den CSS-Bildlaufleistensele...

So erstellen Sie Gitlab auf CentOS6

Vorwort Das ursprüngliche Projekt wurde im öffent...

Detaillierte Schritte zur Installation von MySql 5.7.21 unter Linux

Vorwort Die am häufigsten verwendete Datenbank in...

So löschen Sie eine MySQL-Tabelle

Das Löschen einer Tabelle in MySQL ist sehr einfa...

MySQL 5.7-Bereitstellung und Remotezugriffskonfiguration unter Linux

Vorwort: Vor Kurzem werde ich mit meinen Partnern...

Reagieren Sie auf den nativen ScrollView-Pulldown-Aktualisierungseffekt

In diesem Artikel wird der spezifische Code des P...

JS implementiert WeChats "Shit Bombing"-Funktion

Hallo zusammen, ich bin Qiufeng. Vor Kurzem hat W...

Lernen Sie die Ausführungsreihenfolge von SQL-Abfragen von Grund auf

Die Ausführungsreihenfolge der SQL-Abfrageanweisu...

Hast du genau verstanden Schlagworte Definition Verwendung

Vorwort : Heute wurde ich gefragt: „Haben Sie das ...

Tutorial zur Installation der mysql5.7.36-Datenbank in einer Linux-Umgebung

Download-Adresse: https://dev.mysql.com/downloads...

Installieren Sie Docker für Windows unter Windows 10 Home Edition

0. Hintergrund Hardware: Xiaomi Notebook Air 13/I...