Verificando se uma variável está definida em JavaScript

Entenda como verificar se uma variável foi definida em JavaScript e como prevenir erros ao acessar variáveis não inicializadas.

Como verificar se uma variável está definida?

Em JavaScript, às vezes você pode querer verificar se uma variável foi definida antes de usá-la no código, especialmente em casos onde a variável pode ser undefined. Isso é especialmente importante para evitar erros, como ao tentar acessar ou manipular valores que não foram inicializados.

Usando typeof para Verificar se a Variável Está Definida

A maneira mais comum e segura de verificar se uma variável está definida é usando o operador typeof. Este operador retorna o tipo de uma variável como uma string. Quando a variável não foi definida, ele retorna "undefined", o que você pode usar para checar se a variável existe.

Exemplo de código:

let nome;
if (typeof nome !== 'undefined') {
  console.log('A variável nome está definida.');
} else {
  console.log('A variável nome não está definida.');
}

No exemplo acima, o código verifica se a variável nome foi definida e exibe a mensagem correspondente no console. Como nome não foi inicializada, a saída será 'A variável nome não está definida.'.

Usando undefined diretamente

Outra maneira de verificar se uma variável está definida é comparando-a diretamente com undefined. No entanto, isso pode ser arriscado se a variável tiver o valor undefined explicitamente atribuído, por isso, é recomendada a verificação com typeof.

Exemplo de código:

let nome;
if (nome === undefined) {
  console.log('A variável nome não está definida.');
} else {
  console.log('A variável nome está definida.');
}

Neste caso, o resultado será o mesmo: 'A variável nome não está definida.'. Contudo, o uso de typeof é mais seguro, pois evita problemas caso a variável tenha sido explicitamente atribuída ao valor undefined.

Verificando se uma variável foi inicializada

Se você deseja verificar se uma variável foi tanto declarada quanto inicializada, você pode usar a combinação de typeof e uma comparação adicional, ou ainda recorrer ao uso de null para conferir a inicialização.

Exemplo de código verificando inicialização:

let nome = null;
if (nome !== null && typeof nome !== 'undefined') {
  console.log('A variável nome está inicializada.');
} else {
  console.log('A variável nome não está inicializada.');
}

Aqui, a variável nome é definida como null, o que é um valor válido, mas não o mesmo que estar definida com um valor específico como string, número ou objeto.

Verificando Objetos e Propriedades

Quando você está lidando com objetos, você pode precisar verificar se uma propriedade de um objeto foi definida. Para isso, você pode usar o operador in ou a verificação de undefined diretamente para evitar erros ao acessar propriedades não definidas.

Exemplo de código para verificar propriedade de objeto:

let pessoa = { nome: 'João' };
if ('nome' in pessoa) {
  console.log('A propriedade nome está definida.');
} else {
  console.log('A propriedade nome não está definida.');
}

Aqui, verificamos se a propriedade nome existe no objeto pessoa. Como a propriedade foi definida, a saída será 'A propriedade nome está definida.'.

Conclusão

Verificar se uma variável está definida é uma prática essencial para evitar erros em JavaScript, especialmente quando se lida com variáveis dinâmicas ou quando elas podem ser passadas por diferentes fluxos de código. Usar typeof é a maneira mais segura de realizar essas verificações, enquanto outras abordagens, como comparações diretas com undefined, podem ser úteis dependendo do seu caso de uso.

A verificação de variáveis não definidas é um ponto importante quando você está desenvolvendo aplicativos em JavaScript, especialmente se estiver lidando com dados dinâmicos ou entradas de usuários. Compreender como lidar com variáveis não inicializadas pode evitar muitos erros que ocorrem durante a execução do código, resultando em uma experiência de usuário mais estável e previsível. A combinação de typeof e boas práticas de inicialização de variáveis ajuda a tornar seu código mais robusto e menos suscetível a falhas imprevistas.

Algumas aplicações:

  • Garantir que variáveis sejam verificadas antes de serem usadas em cálculos ou operações.
  • Evitar erros ao acessar propriedades de objetos ou arrays que podem não existir.
  • Validar dados de entrada e garantir que eles estejam definidos antes de prosseguir com o processamento.
  • Trabalhar com APIs ou dados de fontes externas e garantir que todas as variáveis estejam corretamente inicializadas antes de usá-las.

Dicas para quem está começando

  • Use typeof para verificar se uma variável está definida, já que ele lida bem com variáveis não inicializadas.
  • Evite depender de comparações diretas com undefined, pois isso pode gerar problemas com variáveis explicitamente definidas como undefined.
  • Considere inicializar variáveis com valores padrão para evitar erros ao verificar se elas estão definidas.
  • Pratique com objetos e propriedades para entender como verificar se uma propriedade existe antes de acessá-la.
Foto de Isabela Oliveira
Contribuições de
Isabela Oliveira

Desenvolvedora front-end focada em JavaScript e experiência de usuário (UX).

Mais sobre o autor
Compartilhe este tutorial: Como verificar se uma variável está definida?

Compartilhe este tutorial

Continue aprendendo:

Como funciona o conceito de truthy e falsy em JavaScript?

Compreenda os conceitos de valores truthy e falsy em JavaScript e como eles afetam a execução do seu código em condições e expressões.

Tutorial anterior

Como funciona a interpolação de strings (template literals)?

Compreenda o conceito de interpolação de strings com template literals e como usá-la para criar strings dinâmicas em JavaScript.

Próximo tutorial