Je vérifie if(response[0].title !== undefined)
, mais j'obtiens l'erreur suivante:
Uncaught TypeError: Impossible de lire la propriété 'title' de non définie.
response[0]
n'est pas défini, vérifiez s'il est défini, puis vérifiez le titre de sa propriété.
if(typeof response[0] !== 'undefined' && typeof response[0].title !== 'undefined'){
//Do something
}
Il suffit de vérifier si response[0]
n'est pas défini:
if(response[0] !== undefined) { ... }
Si vous devez toujours vérifier explicitement le titre, faites-le après la vérification initiale:
if(response[0] !== undefined && response[0].title !== undefined){ ... }
J'ai eu des problèmes avec tous les autres exemples de code ci-dessus. Sous Chrome, c'était la condition qui fonctionnait pour moi:
typeof possiblyUndefinedVariable !== "undefined"
Je vais devoir tester cela dans d'autres navigateurs et voir comment les choses se passent, je suppose.
En fait, vous devez l’entourer d’un bloc Try/Catch afin que votre code ne s’arrête pas de fonctionner. Comme ça:
try{
if(typeof response[0].title !== 'undefined') {
doSomething();
}
}catch(e){
console.log('responde[0].title is undefined');
}
type de:
var foo;
if (typeof foo == "undefined"){
//do stuff
}
Ce sera parce que response[0]
lui-même n'est pas défini.
Vérifiez si condition == null
; Ça va résoudre le problème
Vérifiez si vous êtes bien response[0]
existe, l'erreur semble suggérer que ce n'est pas le cas.
Vous devez d’abord vérifier si response[0]
n’est pas défini et si ce n’est pas le cas, vérifiez le reste. Cela signifie que dans votre cas, response[0]
n'est pas défini.
Je sais que j'y suis allé avec 7 mois de retard, mais j'ai trouvé ces questions et ça a l'air intéressant. J'ai essayé ceci sur la console de mon navigateur.
try{x,true}catch(e){false}
Si la variable x est indéfinie, une erreur est interceptée et elle sera fausse, sinon, elle retournera vrai. Vous pouvez donc utiliser la fonction eval pour définir la valeur sur une variable
var isxdefined = eval('try{x,true}catch(e){false}')