Was ist der nullische Koalescing -Operator (??)?
Der ?? Der Bediener löst das Problem, dass beim Einstellen des Standardwerts mit || gültige Werte wie 0, leere Zeichenfolge oder False fälschlicherweise ausgeschlossen werden. Es gibt nur den rechten Standardwert zurück, wenn die linke Seite null oder undefiniert ist, und schließt andere falsche Werte nicht aus. Zum Beispiel: ItemCount? 5 verwendet 5, wenn ItemCount null oder undefiniert ist, aber wenn es 0 oder eine leere Zeichenfolge ist, wird der ursprüngliche Wert beibehalten. Die Nutzungsszenarien umfassen die Handhabung der Benutzereingabe, optionale Objekteigenschaften usw., die eine genaue Steuerung erfordern, und die Verwendung ||? sollte zu diesem Zeitpunkt bevorzugt werden. Darüber hinaus sollten Klammern in komplexen Ausdrücken verwendet werden, um Prioritätsprobleme des Bedieners zu vermeiden.
Der Nullish Coalescing-Operator ( ??
) ist ein logischer Operator in JavaScript, der seinen rechten Seitenbetreiber zurückgibt, wenn der linke Seitenbetreiber null
oder undefined
ist. Es ist nützlich, um Standardwerte festzulegen, ohne versehentlich andere falsche Werte wie 0
, ''
oder false
als ungültig zu behandeln.
Welches Problem macht ??
lösen?
Vor ??
Bestehende Entwickler verwendeten häufig den logischen oder Operator ( ||
), um Fallback -Werte bereitzustellen. Zum Beispiel:
Lassen Sie Name = Benutzername || 'Gast';
Dies funktioniert gut, wenn username
null
oder undefined
ist. Es behandelt aber auch Werte wie eine leere Zeichenfolge ''
, 0
oder false
als falsch und löst den Fallback aus - was möglicherweise nicht beabsichtigt ist.
Mit ??
Sie greifen nur zurück, wenn der Wert wirklich null
oder undefined
ist. Also das:
lass count = itemCount ?? 5;
Bedeutet: Wenn itemCount
genau null
oder undefined
ist, verwenden Sie 5
. Wenn es 0
, ''
oder einen anderen Wert ist, behalten Sie es.
Wie geht es ??
sich mit verschiedenen Werten verhalten?
Hier ist wie ??
verhält sich mit verschiedenen Eingaben:
-
null ?? 'default'
→'default'
-
undefined ?? 'default'
→'default'
-
0 ?? 10
→0
(behandelt0
nicht als ungültig) -
'' ?? 'fallback'
→''
(leere Zeichenfolge wird als gültig angesehen) -
false ?? true
→false
(gibt den tatsächlichen Wert noch zurück)
Also im Gegensatz zu ||
, ??
Sorge nicht um Wahrheit - es prüft nur null
oder undefined
.
Wann soll ich verwenden ??
statt ||
?
??
Wenn Sie falsche Werte wie 0
, ''
oder false
zulassen möchten, aber trotzdem vor null
oder undefined
werden möchten.
Ein paar praktische Beispiele:
Verfassende Benutzereingabe, die
0
oder eine leere Zeichenfolge betragen kann:const userInput = ''; const value = userInput ?? 'Standard'; // hält die leere Zeichenfolge
Umgang mit optionalen Objekteigenschaften:
const config = {timeout: 0}; const timeout = config.timeout ?? 1000; // verwendet 0, nicht 1000
Wenn Sie alle falsy -Werte in Ordnung sind, bleiben Sie bei ||
. Aber wenn Sie eine genauere Kontrolle wünschen, gehen Sie mit ??
.
Eine schnelle Anmerkung zum Vorrang vor Operatoren
Seien Sie vorsichtig kombiniert ??
mit anderen logischen Operatoren wie ||
oder &&
. Der Nullish -Koalescing -Operator hat einen geringeren Vorrang als Vergleichsbetreiber, jedoch höher als zu Zuordnungsoperatoren.
Um Verwirrung, insbesondere in komplexen Ausdrücken, zu vermeiden, wickeln Sie die Operation in Elternshesen ein:
let Ergebnis = (Wert ?? StandardValue) * 2;
Auch verwenden ??
und ||
Im selben Ausdruck kann Fehler verursacht werden, sofern nicht ordnungsgemäß gruppiert.
Zusamenfassend, ??
Gibt Ihnen einen saubereren Weg, um fehlende Werte zu bewältigen, ohne in falsches Gebiet zu überschreiten. Es ist besonders praktisch, wenn Sie sich mit Benutzereingaben, Konfigurationseinstellungen oder API -Antworten befassen, bei denen falsch positive Ergebnisse von ||
kann irreführend sein.
Das ist im Grunde genommen das, was es tut - nichts Besonderes, aber definitiv hilfreich, wenn Sie diese Kantenfälle erreicht haben.
Das obige ist der detaillierte Inhalt vonWas ist der nullische Koalescing -Operator (??)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Der Umfang von JavaScript bestimmt den Zugangsumfang von Variablen, die in globale, Funktions- und Blockebene unterteilt sind. Der Kontext bestimmt die Richtung davon und hängt von der Funktionsaufrufmethode ab. 1. Scopes umfassen globaler Umfang (überall zugänglich), Funktionsumfang (nur innerhalb der Funktion gültig) und Blockebene (LET und const sind innerhalb von {} gültig). 2. Der Ausführungskontext enthält das variable Objekt, die Bereichskette und die Werte davon. Dies weist auf globale oder undefinierte in der normalen Funktion hin, die Methode richtet sich auf das Anrufobjekt, der Konstruktor auf das neue Objekt und kann auch explizit durch Anruf/Anwendung/Bindung angegeben werden. 3.. Verschluss bezieht sich auf Funktionen, die auf externe Bereiche zugreifen und sich erinnern. Sie werden häufig zur Kapselung und zum Cache verwendet, können aber verursachen

Es gibt zwei Kernmethoden, um den ausgewählten Optionsknopfwert zu erhalten. 1. Verwenden Sie QuerySelector, um das ausgewählte Element direkt zu erhalten, und verwenden Sie die Eingabe [name = "Your-Radio-Name"]: Überprüfter Selektor, um das ausgewählte Element zu erhalten und das Wertattribut zu lesen. Es ist für moderne Browser geeignet und hat einen präzisen Code. 2. Verwenden Sie das Dokument. Darüber hinaus müssen Sie auf die Schreibweise des Namensattributs, die Behandlung von nicht ausgewählten Situationen und die dynamische Belastung des Inhalts achten

Es gibt einen wesentlichen Unterschied zwischen den Webworkers und Javatheads von JavaScript in der gleichzeitigen Verarbeitung. 1. JavaScript nimmt ein Single-Thread-Modell an. Webworker ist ein unabhängiger Thread, der vom Browser bereitgestellt wird. Es ist geeignet, zeitaufwändige Aufgaben auszuführen, die die Benutzeroberfläche nicht blockieren, aber das DOM nicht bedienen können. 2. Java unterstützt echtes Multithreading von der Sprachebene, die über die Thread-Klasse erstellt wurde und für eine komplexe gleichzeitige Logik und die serverseitige Verarbeitung geeignet ist. 3.. Webworker verwenden Postmessage (), um mit dem Hauptfaden zu kommunizieren, der sehr sicher und isoliert ist. Java -Threads können Speicher teilen, sodass Synchronisierungsprobleme aufmerksam werden müssen. V.

Die Kompositionapi in VUE3 eignet sich besser für komplexe Logik- und Typableitung, und Optionsapi eignet sich für einfache Szenarien und Anfänger. 1. Optionsapi organisiert Code nach Optionen wie Daten und Methoden und hat eine klare Struktur, aber komplexe Komponenten werden fragmentiert. 2. Die Zusammensetzung verwendet ein Setup, um die verwandte Logik zu konzentrieren, die der Wartung und Wiederverwendung förderlich ist. 3. Compositionapi realisiert konfliktfreie und parameterizierbare logische Wiederverwendung durch komponierbare Funktionen, was besser ist als Mixin; 4. COMPOSECTI hat eine bessere Unterstützung für Typscript und eine genauere Typableitung; 5. Es gibt keinen signifikanten Unterschied in der Leistung und des Verpackungsvolumens der beiden; 6.

Das Typ -Casting ist das Verhalten der automatischen Konvertierung eines Werttyps in einen anderen Typ in JavaScript. Zu den allgemeinen Szenarien gehören: 1. Bei Verwendung von Operatoren, wenn eine Seite eine String ist, wird die andere Seite ebenfalls in eine Zeichenfolge konvertiert, wie z. B. '5' 5. Das Ergebnis ist "55"; 2. Im booleschen Kontext werden nicht-Boolenische Werte implizit in boolesche Typen wie leere Zeichenfolgen, 0, Null, undefined usw. konvertiert, die als falsch angesehen werden; 3.. Null nimmt an numerischen Operationen teil und wird in 0 umgewandelt, und undefined wird in NAN umgewandelt. 4. Die durch implizite Umwandlung verursachten Probleme können durch explizite Konvertierungsfunktionen wie Nummer (), String () und Boolean () vermieden werden. Das Beherrschen dieser Regeln hilft

Die Debugging komplexer JavaScript -Anwendungen erfordert systematische Verwendung von Tools. 1. Setzen Sie Breakpoints und bedingte Haltepunkte, um verdächtige Prozesse abzufangen, z. 2. Aktivieren Sie die Blackboxing-Funktion, um die Interferenz der Bibliothek von Drittanbietern zu blockieren. 3.. Verwenden Sie Debugger -Aussagen, um den Eintrag des Debugs zu kontrollieren, der auf dem Umwelturteil basiert. 4. Verfolgen Sie die Anrufverbindung über CallStack, analysieren Sie den Ausführungspfad und den variablen Status und lokalisieren Sie so die Hauptursache des Problems effizient.

Formatdaten in JavaScript können durch native Methoden oder Bibliotheken von Drittanbietern implementiert werden. 1. Verwenden Sie natives Datumsobjektstich: Holen Sie sich das Datumsteil durch Getvollerweise, GetMonth, getDate und andere Methoden und spleifen Sie es manuell in yjyy-mm-dd und andere Formate, was für leichte Bedürfnisse geeignet ist und nicht auf Bibliotheken von Drittanbietern beruht. 2. Verwenden Sie die Tolocaledatestring -Methode: Sie können wie ein MM/DD/YYYY -Format gemäß den lokalen Gewohnheiten ausgeben, unterstützen Sie mehrsprachig, aber das Format kann aufgrund verschiedener Umgebungen inkonsistent sein. 3.. Verwenden Sie Bibliotheken von Drittanbietern wie Day.js oder Date-Fns: Bietet prägnante Syntax- und Richfunktionen, die für häufige Operationen geeignet sind oder wenn Erweiterbarkeit erforderlich ist, wie z. B. DayJS ()

Initialisieren Sie das Projekt und erstellen Sie Package.json; 2. Erstellen Sie einen Eintragskriptindex.js mit Shebang; 3.. Registrieren Sie Befehle über Bin Fields in package.json; 4. Verwenden Sie Yargs und andere Bibliotheken, um die Befehlszeilenparameter zu analysieren. 5. Verwenden Sie NPMLink Local Test; 6. Hilfe, Version und Optionen hinzufügen, um die Erfahrung zu verbessern. 7. optional über NPMPublish veröffentlichen; 8. optional automatischen Abschluss mit Yargs; Erstellen Sie schließlich praktische CLI -Tools durch angemessene Struktur und Benutzererfahrungsdesign, erstellen Sie Automatisierungsaufgaben oder verteilen Sie Widgets und enden Sie sie mit vollständigen Sätzen.
