Verificando variáveis indefinidas em JavaScript
É um cenário comum encontrar erros indefinidos ao fazer referência a variáveis inexistentes em JavaScript. Para resolver isso, é crucial entender o conceito de nulo e indefinido na linguagem.
Compreendendo Nulo e Indefinido
Em JavaScript, nulo representa uma ausência explícita de valor , enquanto indefinido indica um valor que ainda não foi atribuído ou inicializado. Se uma variável não for declarada, ela será automaticamente definida como indefinida pelo interpretador JavaScript.
Detectando variáveis indefinidas
Não há equivalente direto para verificar nulo em JavaScript . Em vez disso, você pode usar uma comparação estrita de igualdade (===) para diferenciar entre indefinido e nulo:
if (variable === null) // Does not execute if variable is undefined
Verificando variáveis declaradas e indefinidas
Para determinar se uma variável é declarada e não indefinida, você pode usar o operador de desigualdade (!==):
if (variable !== undefined) // Any scope
Abordagem obsoleta
Antes do ECMAScript 5, foi necessário usar o operador typeof para verificar indefinido, pois indefinido poderia ser reatribuído. No entanto, esta prática agora está desatualizada:
if (typeof variable !== 'undefined') // Any scope
Verificando a existência de membros
Se você precisar verificar se um membro específico existe em um objeto, você pode usar o operador in ou o método hasOwnProperty:
if ('membername' in object) // With inheritance
if (object.hasOwnProperty('membername')) // Without inheritance
Verificando valores verdadeiros
Finalmente, se você estiver interessado em saber se uma variável é válida um valor verdadeiro, independentemente de seu conteúdo real, você pode usar o operador booleano:
if (variable)
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3