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
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
// Exemplo com var
var qualquerCoisa = "Aninha";
qualquerCoisa = 1000;
qualquerCoisa = true;
console.log(qualquerCoisa); // true
É 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!!!!!
E aí? Gostaram? Até a próxima anotação.
Top comments (0)