1
resposta

[Dúvida] Definindo Variável

Por que não usar o termo "var", mas sim "let" para definir a variável? São sinônimos?

1 resposta

Oi João!

Ótima pergunta! No JavaScript, temos três formas principais de declarar variáveis: var, let e const. Embora var e let possam parecer sinônimos, há diferenças importantes entre eles que afetam o comportamento do seu código.

var

  • Escopo de Função: Variáveis declaradas com var têm escopo de função, o que significa que elas são visíveis em toda a função onde foram definidas.
  • Hoisting: Variáveis var são "elevadas" ao topo do seu escopo, o que pode levar a comportamentos inesperados se não forem bem compreendidos.
  • Redeclaração: Você pode redeclarar uma variável var dentro do mesmo escopo sem erro.

let

  • Escopo de Bloco: Variáveis declaradas com let têm escopo de bloco, ou seja, são visíveis apenas dentro do bloco {} onde foram definidas.
  • Hoisting: Embora let também seja "elevado", ele não é inicializado até que a declaração seja avaliada, o que evita muitos problemas associados ao var.
  • Redeclaração: Redeclarar uma variável let no mesmo escopo resulta em um erro.

Exemplo Prático

Vamos ver um exemplo prático para entender melhor:

function exemploVar() {
    if (true) {
        var x = 10;
    }
    console.log(x); // Funciona, x é 10
}

function exemploLet() {
    if (true) {
        let y = 10;
    }
    console.log(y); // Erro, y não está definido
}

No primeiro exemplo, x é acessível fora do bloco if porque var tem escopo de função. No segundo exemplo, y não é acessível fora do bloco if porque let tem escopo de bloco.

Por que usar let?

Usar let ajuda a evitar muitos dos problemas e comportamentos inesperados associados ao var, especialmente em códigos mais complexos. Ele torna o código mais previsível e fácil de entender, pois limita o escopo das variáveis ao bloco onde são definidas.

Espero ter ajudado e bons estudos!