[Aula 01] Tudo (ou quase tudo) sobre variáveis em JavaScript
Introdução
Olá Dev. Hoje falarei sobre variáveis.
O que são variáveis?
Pense assim, variáveis são como caixas para guardar valores. Essa caixas podem conter vários tipos de dados (Data Types).
Escopo
Escopo é como se fosse um tipo de visibilidade das variáveis. Existem básicamente 2 tipos de escopo o Escopo Global e o Escopo Local.
Declaração de variáveis
As palvras-chave para declarar variáveis são var
, let
e const
. Cada palavra-chave tem uma diferença, vejamos.
var
A palavra-chave var
pode iniciar com um valor ou não.
Ex.:
var nomeDaVariavel = "valor";
console.log(nomeDaVariavel); // "valor"
ou
var nomeDaVariavel;
console.log(nomeDaVariavel); // undefined
E tem o escopo global.
Ex.:
var nomeDaVariavel = "valor";
function mostrarVariavel() {
console.log(nomeDaVariavel);
}
mostrarVariavel(); // "valor"
let
A palavra-chave let
pode iniciar com um valor ou não.
Ex.:
let nomeDaVariavel = "valor";
console.log(nomeDaVariavel); // "valor"
ou
let nomeDaVariavel;
console.log(nomeDaVariavel); // undefined
E tem o escopo local.
Ex.:
function mostrarVariavel() {
let nomeDaVariavel = "valor";
console.log(nomeDaVariavel);
}
mostrarVariavel(); // "valor"
console.log(nomeDaVariavel); // error
const
A palavra-chave const
necessáriamente precisa inicar com um valor.
Ex.:
const nomeDaVariavel = "valor";
console.log(nomeDaVariavel); // "valor"
O valor de uma const
não pode ser trocado.
Ex.:
const nomeDaVariavel = "valor";
nomeDaVariavel = 1; // error
E tem o escopo local.
Ex.:
function mostrarVariavel() {
const nomeDaVariavel = "valor";
console.log(nomeDaVariavel);
}
mostrarVariavel(); // "valor"
console.log(nomeDaVariavel); // error
Conclusão
Alguns links Importantes: Documentação mdn - variáveis Variáveis e Tipos Primitivos - Curso em vídeo
Obrigado por ter lido até aqui, tchau.
Na verdade o var
nem sempre tem escopo global. Segundo a documentação, o escopo também pode ser uma função. Por exemplo, no código abaixo:
function f() {
var x = 1;
console.log('dentro da função:', x);
}
f();
console.log('fora da função:', x); // erro
Dentro da função ele imprime o valor de x
. Mas o segundo console.log
dá erro porque tenta acessar uma variável que não existe (pois x
foi declarado dentro da função, portanto não existe fora dela).
Mais ainda, se eu fizer isso:
var x = 2;
function f() {
var x = 1;
console.log('dentro da função:', x);
}
f();
console.log('fora da função:', x);
O resultado será:
dentro da função: 1
fora da função: 2
Pois agora temos duas variáveis x
, cada uma no seu próprio escopo (uma dentro da função, outra fora).
Por fim, vale lembrar que existem várias outras diferenças, listadas na documentação, e também tem vários exemplos aqui. Sugiro a leitura, pois as diferenças vão muito além do que foi apresentado (sei que a ideia foi só introduzir o assunto, mas acho legal complementar, pois ainda tem muito mais).