Ir para o conteúdo
Tipo de variável não declarada em JavaScript: O que é?

Tipo de variável não declarada em JavaScript: O que é?

Você já pensou, qual é o tipo de variável não declarada em JavaScript? Eu sei, a primeira coisa que pode vir à mente é: como uma variável não declarada pode ter um tipo? Sim, em JavaScript é possível.

2min read

Você já pensou, qual é o tipo de variável não declarada em JavaScript? Eu sei, a primeira coisa que pode vir à mente é: como uma variável não declarada pode ter um tipo? Sim, em JavaScript é possível.

variável não declarada em JavaScript

Para entendê-lo, vamos começar entendendo os tipos em JavaScript. Existem sete tipos integrados em JavaScript. Eles são os seguintes:

  1. nulo
  2. indefinido
  3. booleano
  4. número
  5. corda
  6. object
  7. symbol (added on ES6)

Cada variável com valor atribuído tem um tipo. Vamos considerar o código listado abaixo:

var foo = 9;
console.log(typeof (foo)); // number
var koo;
console.log(typeof (koo)); // undefined
var too = 'Infragistics';
console.log(typeof (too)); // string

Como você pode ver no trecho acima, se não houver nenhum valor atribuído, o tipo de variável será indefinido.

Como você pode ver no trecho acima, se não houver nenhum valor atribuído, o tipo de variável será indefinido.

Até aí tudo bem, vimos que a variável sem valor atribuído é indefinida.  Vamos considerar o próximo trecho de código:

var koo;
console.log(koo); // undefiend
console.log(typeof (koo)); // undefined

Criamos uma variável koo e não atribuímos nenhum valor a ela.  Agora tanto o valor quanto o tipo de koo estão definidos como indefinidos.

Criamos uma variável koo e não atribuímos nenhum valor a ela.  Agora tanto o valor quanto o tipo de koo estão definidos como indefinidos.

Agora que você entende o tipo e o valor associados a undefined, vamos passar para null. Em JavaScript, null é um tipo primitivo.  No entanto, o tipo de valor nulo é object. Considere o código listado abaixo:

var foo = null;
console.log(foo); // null
console.log(typeof (foo)); // object

Você pode considerar como um bug legado que o tipo de valor nulo é objeto em JavaScript.

Você pode considerar como um bug legado que o tipo de valor nulo é objeto em JavaScript.

Finalmente, mas igualmente importante, em JavaScript, uma variável que não é declarada também tem um tipo. O tipo de variável declarado é indefinido.

console.log(foo);// error foo is not defined
console.log(typeof (foo)); // undefined 

Quando você lê o valor da variável, que não é declarado, o JavaScript retornará um erro "não definido" e retornará seu tipo como indefinido

Quando você lê o valor da variável, que não é declarado, o JavaScript retornará um erro "não definido" e retornará seu tipo como indefinido

Além disso, tenha em mente que no mundo do JavaScript não definido não é o mesmo que indefinido.  Espero que agora você entenda vários tipos primitivos em JavaScript.

Solicite uma demonstração