Heim > Web-Frontend > js-Tutorial > Wie kann ich den Fehler „Eigenschaft von undefiniertem Objekt kann nicht gelesen werden' in JavaScript vermeiden?

Wie kann ich den Fehler „Eigenschaft von undefiniertem Objekt kann nicht gelesen werden' in JavaScript vermeiden?

Mary-Kate Olsen
Freigeben: 2024-12-23 01:26:09
Original
990 Leute haben es durchsucht

How Can I Avoid

Vermeiden von „Eigenschaft undefinierter Eigenschaften kann nicht gelesen werden“-Fehler

Bei der Arbeit mit komplexen Datenstrukturen kommt es häufig zu Fehlern im Zusammenhang mit undefinierten Eigenschaften. Betrachten Sie das folgende Beispiel:

// This array contains a mix of nested objects and non-nested values
var test = [{'a':{'b':{'c':"foo"}}}, {'a': "bar"}];
Nach dem Login kopieren

Das Durchlaufen von Tests kann zu Fehlern beim Zugriff auf Eigenschaften verschachtelter Objekte führen, die möglicherweise nicht vorhanden sind. Beispielsweise löst der folgende Code beim Zugriff auf a.b.c einen Fehler aus:

for (i=0; i<test.length; i++) {
    console.log(a.b.c); // Throws error on i==1
}
Nach dem Login kopieren

Um solche Fehler zu vermeiden, können mehrere Ansätze verwendet werden:

Optional Chaining (ES2020) und TypeScript 3.7

Update: Für moderne Browser und TypeScript, die empfohlene Lösung ist optionaler Verkettungsoperator (?.):

obj?.a?.lot?.of?.properties
Nach dem Login kopieren

Funktionsbasierte Problemumgehung (vor ES2020 und vor TypeScript 3.7)

A Eine einfache Problemumgehung besteht darin, eine Hilfsfunktion zu verwenden:

function getSafe(fn, defaultVal) {
  try {
    return fn();
  } catch (e) {
    return defaultVal;
  }
}

// Use the function to access the property safely
console.log(getSafe(() => obj.a.lot.of.properties));
Nach dem Login kopieren

Diese Funktion gibt das Ergebnis des Aufrufs der bereitgestellten Funktion zurück, oder a Standardwert, wenn ein Fehler auftritt. Mit diesem Ansatz können Sie Fehler vermeiden und bedingt auf verschachtelte Eigenschaften zugreifen:

console.log(getSafe(() => obj.a.lot.of.properties, 'nothing'));
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich den Fehler „Eigenschaft von undefiniertem Objekt kann nicht gelesen werden' in JavaScript vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage