Qual é a diferença entre Var, Let e ​​Const em Javascript

Feb 13 2023
Me perguntaram isso durante uma entrevista. Naquele momento eu sabia que tinha algo a ver com escopo, mas não consegui explicar claramente e que var era do ES5 enquanto let e const é ES6, que é apenas a versão mais recente do Javascript.

Me perguntaram isso durante uma entrevista. Naquele momento eu sabia que tinha algo a ver com escopo, mas não consegui explicar claramente e que var era do ES5 enquanto let e const é ES6, que é apenas a versão mais recente do Javascript. Então, decidi repassar os fundamentos do Javascript e ver se consigo colocar o que aprendi com minhas próprias palavras.

Var Vs Let Vs Const

Então, qual é a diferença entre todos os 3 e por que isso importa? Além de ser testado durante uma entrevista, pode trazer consequências não intencionais ao codificar. Var não possui um escopo de bloco, mas Let e ​​Const possuem. O escopo do bloco é o código que você vê dentro de { } e as coisas fora dos colchetes não podem acessar as coisas dentro dele. É fácil ver com exemplos

Aqui está um exemplo usando Var

O que você acha que será registrado no console?

Se sua resposta for Albert duas vezes, você está correto. Como Var não tem um escopo de bloco, a variável name foi substituída por Albert na linha 4 e o console.log nas linhas 5 e 8 está referenciando a linha 4.

Compare com quando usando Let e ​​Const

Por que let e const console registram Albert e Sam em vez de apenas Albert. Isso tem a ver com a forma como os dados estão sendo referenciados na memória. Pense em name na linha 4, nova memória sendo criada para let e const e não sendo capaz de acessá-la fora dos colchetes enquanto var name na linha 4 está referenciando o nome na linha 1.

Aqui está um exemplo para ajudar a tornar mais claro

Como você pode ver, como var não possui um escopo de bloco, ele tem acesso dentro dos colchetes, mas let e const o fazem, não podendo ser acessado fora dos colchetes. Portanto, voltando ao exemplo anterior da linha 1 e 4 usando var name está referenciando as mesmas variáveis ​​de nome, as linhas let e const 1 e 4 estão referenciando 2 variáveis ​​de nome diferentes. Entrarei em mais detalhes ao falar sobre passagem por valor versus passagem por referência .

Além disso, uma diferença principal entre let e const é que você pode reatribuir valores para let, mas não para const.

Aqui está um exemplo abaixo

Como você pode ver ao usar let, você pode alterar os dados para qualquer coisa depois de declarar a variável.

Comparado com const, onde você não pode alterar os dados depois de declará-los. Isso ajuda a evitar algumas consequências não intencionais usando const.

Uma boa regra para quando usar let vs const é se você sabe que os dados podem mudar, por exemplo, uma pontuação, então use let. Se é improvável que os dados mudem, use const.

Espero que isso ajude a fortalecer sua compreensão de var, let e const. Experimente você mesmo em um ambiente de desenvolvimento integrado (IDE), useihttps://replit.com/~um IDE da web para ajudar a escrever este artigo.