Artigo original: JavaScript Check if Undefined – How to Test for Undefined in JS

Uma variável indefinida ou qualquer tipo de variável sem valor sempre retornará "undefined" em JavaScript. É importante lembrar que isso não é a mesma coisa que o tipo null, apesar de ambos implicarem em um estado vazio.

Normalmente, atribuímos um valor a uma variável depois de declará-la, mas nem sempre esse é o caso.

Quando uma variável é declarada (ou inicializada) e nenhum valor é atribuído a ela, o JavaScript automaticamente a define como sendo "undefined" (indefinida), assim:

let minhaString;

console.log(minhaString); // undefined

Além disso, quando tentamos acessar, por exemplo, um valor em um array ou objeto que não existe, ele também retorna undefined.

let usuario = {
    nome: "John Doe",
    idade: 14
};

console.log(usuario.hobby); // undefined

Aqui temos outro exemplo:

let meuArray = [12, 33, 44];

console.log(meuArray[7]); // undefined

Neste artigo, você aprenderá vários métodos e formas que você pode usar para saber se uma variável é undefined em JavaScript. Isso é necessário se você quiser evitar que seu código gere erros ao executar uma operação com uma variável indefinida.

Caso você esteja com pressa, aqui estão as três formas que podem ajudá-lo a verificar se uma variável é undefined no JavaScript:

if(minhaString === undefined){}
if(typeof meuArray[7] === "undefined"){}
if(usuario.hobby === void 0){}

Agora vamos explicar cada um desses métodos com mais detalhes.

Como verificar se uma variável é indefinida em JavaScript com comparação direta

Um dos primeiros métodos que vem à mente é a comparação direta. É aqui que você compara a saída para ver se ela retorna undefined. Você pode fazer isso facilmente da seguinte maneira:

let usuario = {
    nome: "John Doe",
    idade: 14
};

if (usuario.hobby === undefined) {
    console.log("Isso está indefinido");
}

Esse caso também funciona para arrays, assim:

let scores = [12, 34, 66, 78];

if (scores[10] === undefined) {
    console.log("Isso está indefinido");}

E com certeza também funciona para outras variáveis:

let nome;

if (nome === undefined) {
    console.log("Isso está indefinido");}

Como verificar se uma variável é indefinida em JavaScript com typeof

Também podemos usar o tipo da variável para verificar se ela é undefined. Felizmente, para nós, undefined é o tipo de dado de quando qualquer tipo de variável não tem valor atribuído, como você pode ver abaixo: ‌

let nome;

console.log(typeof nome); // "undefined"

Com isso, agora podemos usar o typeof para verificar se temos undefined em todos os tipos de dados como vimos acima. Veja como será a verificação para todos os três cenários que consideramos:

if(typeof usuario.hobby === "undefined"){}
if(typeof scores[10] === "undefined"){}
if(typeof nome === "undefined"){}

Como verificar se uma variável é indefinida em JavaScript com o operador void

O operador void é frequentemente usado para obter o valor primitivo undefined. Você pode fazer isso usando void(0), que é semelhante a void 0, assim:

console.log(void 0); // undefined
console.log(void(0)); // undefined

Na verdade, isso funciona como uma comparação direta (que mostrei antes). Apenas substituímos undefined por void(0) ou void 0. O código fica, então, assim:

if(typeof usuario.hobby === void 0){}
if(typeof scores[10] === void 0){}
if(typeof nome === void 0){}

Ou assim:

if(typeof usuario.hobby === void(0)){}
if(typeof scores[10] === void(0)){}
if(typeof nome === void(0)){}

Conclusão

Neste artigo, aprendemos como verificar se uma variável é indefinida e o que faz com que ela seja indefinida.

Bons estudos e divirta-se com os códigos!