Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá Fatima, boa tarde!
No JavaScript existem três formas de declarar variaveis. Vamos tentar entender as diferenças entre elas.
1 - var: Escopo de Função: Variáveis declaradas com var têm escopo de função. Isso significa que elas são visíveis em todo o corpo da função onde foram declaradas.
Hoisting: As declarações de var são movidas para o topo do escopo em que estão, antes mesmo da execução do código.
Reatribuição: Podemos reatribuir valores a uma variável var após a sua declaração. Exemplo:
function exemploVar() {
if (true) {
var x = 10;
}
console.log(x); // 10 (mesmo fora do bloco if)
}
2 - let: Escopo de Bloco: Variáveis declaradas com let têm escopo de bloco. Elas são visíveis apenas dentro do bloco onde foram declaradas.
Hoisting: Assim como var, let também é hoisted, mas não é inicializado até a declaração.
Reatribuição: Podemos reatribuir valores a uma variável let, mas não podemos redeclará-la no mesmo escopo. Exemplo:
function exemploLet() {
if (true) {
let y = 20;
}
console.log(y); // Erro: y não está definido aqui
}
3 - const: Escopo de Bloco: Assim como let, const também tem escopo de bloco.
Valor Imutável: Uma vez atribuído, o valor de uma variável const não pode ser alterado. Exemplo:
function exemploConst() {
const z = 30;
// z = 40; // Erro: Não é possível reatribuir z
console.log(z); // 30
}
Em resumo:
Use var se precisar de escopo de função ou quiser aproveitar o hoisting. Use let para variáveis mutáveis com escopo de bloco. Use const para valores imutáveis com escopo de bloco.
na pratica var é bem pouco utilizado.