Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] var ou let?

Estou no início do curso de Java consultando a documentação ofical. No exemplo dado refere-se a variável com "var" e não com "let" como apresentado anteriormente. São a mesma coisa? Altera alguma coisa se utilizar uma ou outra?

2 respostas

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.

solução!

Entendi. Super obrigada, Edison!