Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Diferença entre const, let e var.

Sou novo nesse universo da programação e meu conhecimento é quase nulo. Estava estudando e tive dificuldades em entender a diferença na utilização de const, let e var. Alguém poderia me explicar quando utilizar cada uma delas?

1 resposta
solução!

As palavras-chave const, let e var são usadas para declarar variáveis em JavaScript, mas têm diferenças importantes em relação ao escopo e à mutabilidade. Vou explicar cada uma delas:

  1. var:

    • Escopo: Escopo de função ou escopo global. Se declarado fora de qualquer função, tem escopo global. Se declarado dentro de uma função, tem escopo de função.
    • Hoisting: As declarações de variáveis com var são "içadas" para o topo do seu contexto de execução. Isso significa que você pode usar a variável antes de declará-la no código.
    • Reatribuição: Pode ser reatribuída (ter seu valor alterado) a qualquer momento.

    Exemplo:

    var x = 10;
    if (true) {
        var x = 20;
        console.log(x); // Saída: 20
    }
    console.log(x); // Saída: 20
    
  2. let:

    • Escopo: Escopo de bloco. Isso significa que a variável é limitada ao bloco em que foi declarada.
    • Hoisting: Existe hoisting, mas a variável não é inicializada até a linha em que é declarada.
    • Reatribuição: Pode ser reatribuída.

    Exemplo:

    let y = 30;
    if (true) {
        let y = 40;
        console.log(y); // Saída: 40
    }
    console.log(y); // Saída: 30
    
  3. const:

    • Escopo: Escopo de bloco. Assim como let, a variável é limitada ao bloco em que foi declarada.
    • Hoisting: Existe hoisting, mas, assim como let, a variável não é inicializada até a linha em que é declarada.
    • Reatribuição: Não pode ser reatribuída após a inicialização. No entanto, se a variável é um objeto ou um array, os valores dentro do objeto ou array podem ser modificados.

    Exemplo:

    const z = 50;
    // z = 60; // Isso geraria um erro, pois não é possível reatribuir z
    const obj = { prop: 'valor' };
    obj.prop = 'novo valor'; // Isso é permitido
    

Recomendação geral:

  • Use const sempre que possível. Isso ajuda a tornar o código mais previsível e menos propenso a erros.
  • Se precisar reatribuir a variável, use let.
  • Evite var a menos que esteja trabalhando em um contexto que o exija (por exemplo, código legado). let e const são preferíveis por causa de seu escopo mais previsível.