Variáveis Var, Let, e Const em JavaScript

1
381

Em JavaScript, var, let, e const são três formas de criar variáveis. Aqui, vamos falar sobre o escopo e a diferença entre estas três formas.

Um pouco de história sobre a declaração de variáveis

No início do JavaScript, havia uma maneira de declarar uma variável e, isto é, usando a palavra-chave var. Depois let e const são introduzidas no ES6, mas não foi possível utilizá-la imediatamente. Agora, todos os principais navegadores compatíveis com a sintaxe let e const, e a maioria dos desenvolvedores usam let e const atualmente.


Var


Variáveis declaradas usando a palavra-chave var ao contexto de execução atual. Isto significa que se elas estão dentro de uma função só podemos acessá-las dentro da função. e se não estão, elas fazem parte do escopo global que podemos acessar em qualquer lugar. veja o exemplo abaixo para melhor compreensão.

var personagem = "Mario";
console.log(personagem); // imprime Mario

(function novaFunction() {
  var personagem = "Luigi";
  console.log(personagem) // imprime Luigi
})();

Aqui, a Luigi é escopo de função e o Mario pertence ao escopo global. Se tentarmos acessar uma variável global é possível. mas se tentarmos acessar uma variável com escopo de função, não é possível. veja outro exemplo abaixo.

var personagem = "Mario";
console.log(personagem); // imprime Mario

(function novaFunction() {
  var inimigo = "Rei Kopa";
  console.log(inimigo) // prints Rei Kopa
  console.log(personagem); // imprime Mario
})();

console.log(inimigo); // Error (inimigo is not defined)

Um dos problemas com o uso da palavra-chave var é que eles podem ser redeclarados dentro do mesmo escopo. Isto trará alguns problemas sérios se declararmos outra variável usando o mesmo nome dentro do mesmo escopo, a nova variável substituirá a antiga. var também pode ser atualizada.

var personagem = "Mario";
var personagem= "Luigi";

console.log(personagem) // imprime Luigi

personagem = "Princesa";

console.log(personagem) // imprime Princesa

E outra questão com var é que estas variáveis não são delimitadas por blocos, o que significa que se temos declarações de condições, estas não são delimitadas a essa declaração, mas a toda a função ou ao escopo global.

(function olaMundo(){
    for(var i = 0; i < 5; i++){
      console.log("Olá Mundo"); // imprime Olá Mundo 5 vezes
    }
  
    console.log(i); //imprime 5
})();

Let

Esta é a versão melhorada das declarações var. A declaração de variáveis usando esta forma elimina todas as questões que discutimos anteriormente. vamos criar variáveis que são codificadas em bloco. Além disso, elas não podem ser redeclaradas e podem ser atualizadas. O exemplo abaixo mostra a melhor escolha para usar let do que var.

let personagem = "Mario";
console.log(personagem); // imprime Mario

(function () {
  let personagem = "Luigi";
  console.log(personagem) // imprime Luigi
})();

let personagem = "Rei Kopa"; // Error

personagem = "Rei Kopa";

console.log(personagem) // imprime Rei Kopa

Confira o exemplo abaixo para entender mais sobre o comportamento do let dentro de um scopo.

(function olaMundo() {
  for(let i = 0; i < 5; i++){
    console.log("Olá Mundo"); // imprime Olá Mundo 5 vezes
  }
  
  console.log(i); // Error
})();

Const

Variáveis ​​Const não podem ser atualizadas ou redeclaradas. Esta forma é usada para declarar constantes. Igual às declarações let, as declarações const têm escopo de bloco. Ao contrário de var e let, quando estamos usando const para declarar uma variável que deve ser inicializada.

const personagem = "Mario";
console.log(personagem); // imprime Mario

(function (){
  const personagem = "Luigi";
  console.log(personagem); // imprime Luigi
})();

const personagem = "Rei Kopa"; // Error

personagem = "Rei Kopa"; // Error
console.log(personagem); // Error

Quando usamos const para criar um objeto, podemos atualizar as propriedades dentro desse objeto. Veja o exemplo abaixo para melhor compreensão.

const player = {
  nome: "Mario",
  status: "Grande",
};

player.status = "Pequeno";

console.log(player.status); // imprime Pequeno

Eu pessoalmente prefiro usar let e const em vez de var e usar const para declarar variáveis constantes e sempre usar let para declarar variáveis se não for uma constante.

Leia também:  3 Coisas que voce precisa saber antes ou durante a vida de programador.

LEAVE A REPLY

Please enter your comment!
Please enter your name here