DEV Community

Cover image for Var, let e const: Qual é a diferença?!?!
ananopaisdojavascript
ananopaisdojavascript

Posted on • Updated on

Var, let e const: Qual é a diferença?!?!

Quem estuda / trabalha com JS sabe que pode usar var, let e const. Entretanto, você sabe a diferença entre esses tipos de variáveis, já que todas elas guardam um determinado valor?!

Diferença entre var e let

Quando uma variável é declarada com var, torna-se uma variável de escopo global, isto é, ela pode ser utilizada em várias partes do nosso código, o que pode ser um problema.

Espera. O que é um escopo?!

Pode-se dizer que escopo seria um bloco de código que tem alguma funcionalidade. Basicamente é um espaço limitado. Quando uma variável está dentro de uma função, está em um escopo local (restrito àquela função) e quando uma variável está em um escopo global, quer dizer que ela está fora da função (e portanto pode ser usada em qualquer cantinho do nosso código).

Por que pode ser um problema?!

Pode ser uma problema porque se alguém modificar o código onde não deve ser mexido por causar um montão de bugs.

E quanto ao let?

O let é um pouquinho mais limitado que o var, isto é, ela pode existir dentro daquele bloco (função). Se essa variável for chamada fora da função, vai dar erro.

function qualquerCoisa() {
  let a = 123;
}

console.log(a); // ReferenceError: 'a' is not defined
Enter fullscreen mode Exit fullscreen mode

Entretanto, let e var têm algo em comum...

Se eu declaro a mesma variável com let e var mais de uma vez, posso colocar qualquer valor nela que nada vai acontecer. O máximo que vai acontecer é chamar a variável com o valor mais recente.

// Exemplo com let
let qualquerCoisa = "Aninha";
qualquerCoisa = 1000;
qualquerCoisa = true;
console.log(qualquerCoisa); // true
Enter fullscreen mode Exit fullscreen mode
// Exemplo com var
var qualquerCoisa = "Aninha";
qualquerCoisa = 1000;
qualquerCoisa = true;
console.log(qualquerCoisa); // true
Enter fullscreen mode Exit fullscreen mode

É por isso que devo usar const?!

Sim, porque se por acaso você modificar o valor que está em uma variável com const, vai receber uma mensagem de erro.

const numero = 50;
numero = 20; // Não pode!!!!!
Enter fullscreen mode Exit fullscreen mode

E aí? Gostaram? Até a próxima anotação.

Discussion (0)