Estou verificando if(response[0].title !== undefined)
, mas recebo o erro:
TypeError não capturado: não é possível ler a propriedade 'title' de undefined.
javascript
undefined
Raimonds
fonte
fonte
Respostas:
response[0]
não está definido, verifique se está definido e, em seguida, verifique o título da propriedade.fonte
undefined
não é uma palavra-chave JavaScript (embora todos pareçam pensar que é). Se desejar, você pode criar uma variável chamadaundefined
e essa verificação estará incorreta. A única maneira correta é verificar(typeof myVar !== 'undefined')
.undefined
?Basta verificar se
response[0]
está indefinido:Se você ainda precisar verificar explicitamente o título, faça-o após a verificação inicial:
fonte
Eu tive problemas com todos os outros exemplos de código acima. No Chrome, essa foi a condição que funcionou para mim:
Vou ter que testar isso em outros navegadores e ver como vão as coisas, suponho.
fonte
undefined
tinha que ser uma corda.Na verdade, você deve cercá-lo com um bloco Try / Catch para que seu código não pare de funcionar. Como isso:
fonte
tipo de:
fonte
Será porque
response[0]
ele próprio é indefinido.fonte
Verifique se
condition == null
; Resolverá o problemafonte
Verifique se você
response[0]
realmente existe, o erro parece sugerir que não existe.fonte
Você deve primeiro verificar se
response[0]
está indefinido e, se não estiver, verificar o restante. Isso significa que, no seu caso,response[0]
é indefinido.fonte
Sei que cheguei aqui sete meses atrasado, mas achei essas perguntas e parece interessante. Eu tentei isso no console do meu navegador.
Se a variável x for indefinida, o erro será detectado e será falso; caso contrário, retornará true. Então você pode usar a função eval para definir o valor para uma variável
fonte
Em algumas dessas respostas, há um mal-entendido fundamental sobre como usar
typeof
.Incorreta
Corrigir
O motivo é que
typeof
retorna uma string. Portanto, verifique se ela retornou a string "indefinida" em vez deundefined
(não entre aspas), que é um dos tipos primitivos do JavaScript . Otypeof
operador nunca vai retornar um valor do tipoundefined
.Termo aditivo
Seu código pode funcionar tecnicamente se você usar a comparação incorreta, mas provavelmente não pelo motivo que você pensa. Não há
undefined
variável preexistente no JavaScript - não é um tipo de palavra-chave mágica com a qual você possa comparar. Na verdade, você pode criar uma variável chamadaundefined
e atribuir qualquer valor que desejar.E aqui está um exemplo de como você pode usar isso para provar que o primeiro método está incorreto:
https://jsfiddle.net/p6zha5dm/
fonte