Vorwort Der optionale Verkettungsoperator (?.) ermöglicht das Lesen des Werts einer Eigenschaft am Ende einer Kette, ohne dass die Gültigkeit jeder Referenz in der Kette explizit überprüft werden muss. Der Unterschied besteht darin, dass kein Fehler auftritt, wenn die Referenz null oder undefiniert ist, und der Kurzschluss-Rückgabewert des Ausdrucks undefiniert ist. Bei Verwendung mit einem Funktionsaufruf wird „undefined“ zurückgegeben, wenn die angegebene Funktion nicht existiert. Der optionale Verkettungsoperator verkürzt und prägnanter die Ausdruckswurzeln beim Versuch, auf möglicherweise nicht vorhandene Objekteigenschaften zuzugreifen. Der optionale Verkettungsoperator ist auch beim Untersuchen des Inhalts eines Objekts hilfreich, wenn Sie nicht sicher sind, welche Eigenschaften vorhanden sein müssen. Optionaler Verkettungsoperator (?.) Grammatik obj?.prop obj?.[Ausdruck] Funktion?.(Argumente) beschreiben Der optionale Verkettungsoperator bietet eine Möglichkeit, den Zugriff auf den Wert eines verbundenen Objekts zu vereinfachen, wenn die Referenz oder Funktion, die durch das verbundene Objekt übergeben wird, undefiniert oder null sein kann. let nestedProp = obj.erstes && obj.erstes.zweites Um Fehler zu vermeiden, stellen Sie vor dem Zugriff auf obj.first.second sicher, dass der Wert von obj.first weder null noch undefiniert ist. Wenn Sie einfach auf obj.first.second zugreifen, ohne obj.first zu überprüfen, wird möglicherweise ein Fehler ausgegeben. let nestedProp = obj.erste?.zweite Durch die Verwendung des ?.-Operators anstelle des .-Operators überprüft JavaScript implizit, ob obj.first weder null noch undefiniert ist, bevor versucht wird, auf obj.first.second zuzugreifen. Wenn obj.first null oder undefiniert ist, wird der Ausdruck die Berechnung kurzschließen und direkt „undefined“ zurückgeben. Dies entspricht dem folgenden Ausdruck, allerdings wird dabei keine temporäre Variable erstellt: let temp = obj.first let nestedProp = ((temp === null || temp === undefiniert) ? undefiniert : temp.Sekunde) verwendenWir können verkettbare Operatoren mit dem Babel-Compiler verwenden. babel Garn hinzufügen @babel/plugin-proposal-optional-chaining --dev Fügen Sie eine .babelrc-Datei hinzu { "Plugins": ["@babel/Plugin-Vorschlag-optional-Chaining"] } Verwendung in Create-React-App Standardmäßig erlaubt create-react-app keine Änderung der Babel-Konfiguration. Hier müssen wir zwei zusätzliche Module installieren, um eine Ergänzung der Standardkonfiguration zu ermöglichen. Garn hinzufügen anpassen-cra reagieren-app-rewired --dev Fügen Sie die Datei config-overrides.js hinzu const { useBabelRc, override } = erfordern('customize-cra'); module.exports = überschreiben(useBabelRc()); Ändern Sie package.json "Skripte": { "Start": "React-App-Rewired-Start", "Build": "React-App-Rewired-Build", „Test“: „React-App-Rewired-Test --env=jsdom“ } eslint Nach der Installation des Babel-Compilers können Sie den ?.-Operator verwenden. Wenn Sie jedoch eslint verwenden, müssen Sie babel-eslint installieren, um diese neue Syntax zu erkennen. Garn hinzufügen babel-eslint --dev Fügen Sie die .eslintrc-Datei hinzu { "Parser": "babel-eslint", "Regeln": { "streng": 0 } } Verwendung in vscode Der JS-Validator von vscode erkennt derzeit den ?.-Operator nicht, daher wird eine Fehlerwarnung ausgegeben: So beheben Sie die Fehlerwarnung: Installieren Sie die vscode-Erweiterung ESLint, suchen und installieren Sie ESLint im Erweiterungsspeicher. Ändern Sie die vscode-Konfiguration (.vscode/settings.json): { "eslint.alwaysShowStatus": wahr, "eslint.autoFixOnSave": wahr, "javascript.validate.enable": false, // Hauptsächlich dies, schalte den JS-Validator von vscode aus "[javascript]": { "editor.formatOnSave": falsch, }, "[javascriptreact]": { "editor.formatOnSave": falsch, }, } Quelle: Optionaler Verkettungsoperator Dies ist das Ende dieses Artikels über die Verwendung des optionalen Verkettungsoperators von js. Weitere relevante Inhalte zum optionalen Verkettungsoperator von js 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:
|
<<: Centos7.5 installiert die Bereitstellung des binären Pakets mysql5.7.24
Kürzlich wurde die neue Anforderung „Front-End-Ca...
Inhaltsverzeichnis 1. Attribute hinzufügen 2. Meh...
1. Installationsumgebung Docker unterstützt die f...
In diesem Artikel wird der spezifische Code für J...
In diesem Artikel werden zwei Methoden zur Implem...
Konvertieren Sie Code in ein Bild mit html2canvas...
Codeeffekte werden häufig in unterschiedlichen Br...
Inhaltsverzeichnis 1. Testumgebung 1.1 CentOS 7 i...
Hallo zusammen, ich bin Liang Xu. Bei der Verwend...
Anforderungsszenario: Die vorhandene PXC-Umgebung...
So zeigen Sie Dateien in einem Docker-Image an 1....
Inhaltsverzeichnis Kartenstaat Kartengetter Karte...
Ich bin auf ein Problem gestoßen. Wenn beim Teste...
Inhaltsverzeichnis Ideen Abfangen von Anfragen An...
Es gibt ein Unternehmen, das die 5 zuletzt überpr...