Je vérifie if(response[0].title !== undefined)
, mais je reçois l'erreur:
TypeError non capturé: impossible de lire la propriété 'title' de undefined.
javascript
undefined
Raimonds
la source
la source
Réponses:
response[0]
n'est pas défini, vérifiez s'il est défini, puis vérifiez son titre de propriété.la source
undefined
n'est pas un mot-clé JavaScript (bien que tout le monde semble le croire). Si vous le souhaitez, vous pouvez créer une variable appeléeundefined
et cette vérification sera incorrecte. La seule façon correcte est de vérifier(typeof myVar !== 'undefined')
.undefined
?Vérifiez simplement si ce
response[0]
n'est pas défini:Si vous devez toujours vérifier explicitement le titre, faites-le après la vérification initiale:
la source
J'ai eu des problèmes avec tous les autres exemples de code ci-dessus. Dans Chrome, c'était la condition qui fonctionnait pour moi:
Je vais devoir tester cela dans d'autres navigateurs et voir comment ça se passe, je suppose.
la source
undefined
devait être une chaîne.En fait, vous devez l'entourer d'un bloc Try / Catch pour que votre code ne s'arrête pas de fonctionner. Comme ça:
la source
Type de:
la source
Ce sera parce que
response[0]
lui-même n'est pas défini.la source
Vérifiez si
condition == null
; Cela résoudra le problèmela source
Vérifiez si vous
response[0]
existe réellement, l'erreur semble suggérer que ce n'est pas le cas.la source
Vous devez d'abord vérifier si ce
response[0]
n'est pas défini, et seulement si ce n'est pas le cas, vérifiez le reste. Cela signifie que dans votre cas,response[0]
n'est pas défini.la source
Je sais que je suis allé ici 7 mois en retard, mais j'ai trouvé ces questions et cela semble intéressant. J'ai essayé cela sur ma console de navigateur.
Si la variable x n'est pas définie, une erreur est interceptée et elle sera fausse, sinon, elle renverra true. Vous pouvez donc utiliser la fonction eval pour définir la valeur d'une variable
la source
Dans certaines de ces réponses, il y a un malentendu fondamental sur la façon d'utiliser
typeof
.Incorrect
Correct
La raison en est que
typeof
renvoie une chaîne. Par conséquent, vous devez vérifier qu'il a renvoyé la chaîne "non définie" plutôt queundefined
(non placée entre guillemets), qui est elle-même l'un des types primitifs de JavaScript . L'typeof
opérateur ne renverra jamais une valeur de typeundefined
.Addenda
Votre code peut techniquement fonctionner si vous utilisez la comparaison incorrecte, mais probablement pas pour la raison que vous pensez. Il n'y a pas de
undefined
variable préexistante en JavaScript - ce n'est pas une sorte de mot-clé magique auquel vous pouvez comparer les choses. Vous pouvez réellement créer une variable appeléeundefined
et lui donner la valeur que vous souhaitez.Et voici un exemple de la façon dont vous pouvez utiliser cela pour prouver que la première méthode est incorrecte:
https://jsfiddle.net/p6zha5dm/
la source