1
resposta

var, let e const

Qual a diferença? algo mais didático. obg

var, let e const?

1 resposta

Olá, Adriano, tudo bom?

Primeiro vou te dizer a diferença entre const e os outros dois, ok? Bem, a principal diferença é que se declararmos uma variável com const, você não conseguirá alterar o seu valor, por exemplo:

const fruta = "maçã";
fruta = "banana"; // Uncaught TypeError: Assignment to constant variable.

O código acima imprime um erro. Mas se utilizarmos var ou let para declarar a variável fruta, você poderá alterar seu valor mais tarde no código.

Agora, lete var são bem semelhantes, a única diferença entre eles é o "escopo" em que a variável ficará definida. Te darei um exemplo para ficar mais claro.

if(true) {
    let nome = "Adriano";
    console.log(`Olá, ${nome}!`); // "Olá, Adriano!"
}

console.log(`Olá, ${nome}!`); // Uncaught ReferenceError: nome is not defined

Tentar executar o último console.log imprime uma mensagem de erro. Isso acontece porque variáveis declaradas com let ficam "presas" dentro do if e outras estruturas que ficam entre as chaves {}, que chamamos de bloco.

Mas e se tentarmos executar o mesmo código, mas usando var para declarar nome?

if(true) {
    var nome = "Adriano";
    console.log(`Olá, ${nome}!`); // "Olá, Adriano!"
}

console.log(`Olá, ${nome}!`); // "Olá, Adriano!"

O código acima funciona! Isso acontece porque variáveis declaradas com var não se limitam a blocos feitos por if, for, switch, etc.

Entretanto, qualquer variável criada dentro uma função não pode ser acessada fora da função, não importa se foi declarada com const, let, ou var.

Mas aqui vai uma dica: a "liberdade" que vardá às variáveis pode ser um pouco perigosa e fonte de bugs, então na maioria dos casos o mais recomendado é usar let para variáveis que você deseja alterar o valor no futuro. E, naturalmente, use const para variáveis que você não quer que tenha o valor alterado.

Espero ter ajudado! Bons estudos!