Estoy comprobando if(response[0].title !== undefined)
, pero me sale el error:prueba si algo no está definido en JavaScript
Uncaught TypeError: Cannot read property 'title' of undefined.
Estoy comprobando if(response[0].title !== undefined)
, pero me sale el error:prueba si algo no está definido en JavaScript
Uncaught TypeError: Cannot read property 'title' of undefined.
response[0]
no está definido, verifique si está definido y luego verifique su título de propiedad.
if(typeof response[0] !== 'undefined' && typeof response[0].title !== 'undefined'){
//Do something
}
A pesar del número de votos, esta no es una buena forma de realizar el control porque 'undefined' no es una palabra clave de JavaScript (aunque todos parecen pensar que sí). Si lo desea, puede crear una variable llamada 'undefined' y luego esta verificación será incorrecta. La única forma correcta es verificar '(typeof myVar! == 'undefined')'. – BadHorsie
@BadHorsie tiene sentido, actualicé la respuesta con su comentario. – amosrivera
Comprobar si eres response[0]
realidad existe, el error parece sugerir que no lo hace.
Será porque response[0]
en sí no está definido.
Usted debe comprobar primero si response[0]
no está definido, y sólo si no lo es, y comprueba para el resto. Eso significa que en su caso, response[0]
no está definido.
Sólo comprobar si response[0]
no está definida:
if(response[0] !== undefined) { ... }
Si usted todavía tiene que comprobar explícitamente el título, hágalo después de la comprobación inicial:
if(response[0] !== undefined && response[0].title !== undefined){ ... }
En realidad, usted debe rodearlo de un intento/Catch Block para que su código no deje de funcionar. De esta manera:
try{
if(typeof response[0].title !== 'undefined') {
doSomething();
}
}catch(e){
console.log('responde[0].title is undefined');
}
Estaba buscando IE 8 y necesitaba intentar capturar. – RonanOD
esta es la mejor manera si está probando si una función no está definida – edepperson
arrojar un error al verificar indefinido no es una buena solución. @amosrivera es la mejor solución. – user3658423
tuve problemas con todos los demás ejemplos de código anteriores. En Chrome, esta era la condición que trabajó para mí:
typeof possiblyUndefinedVariable !== "undefined"
que tendrá que probar que en otros navegadores y ver cómo van las cosas, supongo.
typeof:
var foo;
if (typeof foo == "undefined"){
//do stuff
}
Comprobar si condition == null
; Resolverá el problema
Esto debería ser un comentario –
Sé que fui aquí 7 meses tarde, pero encontré esta pregunta y parece interesante. Intenté esto en la consola de mi navegador.
try{x,true}catch(e){false}
Si la variable x no está definido, el error es apresado y será falsa, si no, se volverá realidad. Por lo tanto, puede usar la función eval para establecer el valor en una variable
var isxdefined = eval('try{x,true}catch(e){false}')
Consulte la respuesta aquí en stackoverflow. http://stackoverflow.com/questions/858181/how-to-check-a-not-defined-variable-in-javascript –
posible duplicado de [Javascript: undefined! == undefined?] (Http: // stackoverflow.com/questions/776950/javascript-undefined-undefined) –