Ich überprüfe if(response[0].title !== undefined)
, aber ich erhalte den Fehler:
Nicht erfasster TypeError: Die Eigenschaft 'title' von undefined kann nicht gelesen werden.
javascript
undefined
Raimonds
quelle
quelle
Antworten:
response[0]
ist nicht definiert, prüfen Sie, ob es definiert ist, und überprüfen Sie dann den Eigenschaftstitel.quelle
undefined
es sich nicht um ein JavaScript-Schlüsselwort handelt (obwohl jeder zu glauben scheint, dass dies der Fall ist). Wenn Sie möchten, können Sie eine Variable mit dem Namen erstellen.undefined
Diese Prüfung ist dann falsch. Der einzig richtige Weg ist zu überprüfen(typeof myVar !== 'undefined')
.undefined
?Überprüfen Sie einfach, ob
response[0]
undefiniert ist:Wenn Sie den Titel noch explizit überprüfen müssen, tun Sie dies nach der ersten Überprüfung:
quelle
Ich hatte Probleme mit allen anderen Codebeispielen oben. In Chrome war dies die Bedingung, die für mich funktioniert hat:
Ich muss das in anderen Browsern testen und sehen, wie es wohl läuft.
quelle
undefined
, dass es eine Schnur sein musste.Eigentlich müssen Sie es mit einem Try / Catch-Block umgeben, damit Ihr Code nicht aufhört zu funktionieren. So was:
quelle
Art der:
quelle
Es wird sein, weil
response[0]
selbst undefiniert ist.quelle
Überprüfen Sie, ob
condition == null
; Es wird das Problem lösenquelle
Überprüfen Sie, ob Sie
response[0]
tatsächlich existieren. Der Fehler scheint darauf hinzudeuten, dass dies nicht der Fall ist.quelle
Sie müssen zuerst prüfen, ob
response[0]
undefiniert ist, und nur wenn dies nicht der Fall ist, den Rest prüfen. Das bedeutet, dass in Ihrem Fallresponse[0]
undefiniert ist.quelle
Ich weiß, dass ich 7 Monate zu spät hierher gekommen bin, aber ich habe diese Fragen gefunden und sie sehen interessant aus. Ich habe dies auf meiner Browserkonsole versucht.
Wenn die Variable x undefiniert ist, wird ein Fehler abgefangen und ist falsch. Wenn nicht, wird true zurückgegeben. Sie können also die eval-Funktion verwenden, um den Wert auf eine Variable festzulegen
quelle
In einigen dieser Antworten gibt es ein grundlegendes Missverständnis hinsichtlich der Verwendung
typeof
.Falsch
Richtig
Der Grund ist, dass
typeof
eine Zeichenfolge zurückgegeben wird. Daher sollten Sie überprüfen, ob die Zeichenfolge "undefiniert" zurückgegeben wurde und nichtundefined
(nicht in Anführungszeichen eingeschlossen), die selbst einer der primitiven Typen von JavaScript ist . Dertypeof
Operator gibt niemals einen Wert vom Typ zurückundefined
.Nachtrag
Ihr Code funktioniert möglicherweise technisch, wenn Sie den falschen Vergleich verwenden, aber wahrscheinlich nicht aus dem Grund, den Sie denken.
undefined
In JavaScript gibt es keine bereits vorhandene Variable - es ist kein magisches Schlüsselwort, mit dem Sie Dinge vergleichen können. Sie können tatsächlich eine Variable mit dem Namen erstellenundefined
und einen beliebigen Wert angeben.Und hier ist ein Beispiel, wie Sie damit beweisen können, dass die erste Methode falsch ist:
https://jsfiddle.net/p6zha5dm/
quelle