Ola amigos desenvolvedores e companheiros de curso.
As boas práticas para declaração de variáveis envolvem principalmente o uso de const
e let
ao invés de var
e isso se deve a questões de escopo, legibilidade e manutenção do código, além de evitar problemas que podem surgir com o uso incorreto ou desnecessário do var
. Vamos explorar as boas práticas e as razões pelas quais devemos seguir essas orientações, além de algumas curiosidades sobre o tema.
1. Evitar o uso de var
Historicamente, o var
foi a primeira palavra-chave usada para declarar variáveis em JavaScript. No entanto, o var
tem um comportamento peculiar devido ao seu escopo, que é global ou de função, e não de bloco. Isso pode levar a erros inesperados em determinadas situações.
Exemplo de problema com var
:
function exemplo() {
if (true) {
var nome = "José";
}
console.log(nome); // Saída: "José"
}
Neste caso, a variável nome
é acessível fora do bloco if
, já que o var
não respeita o escopo de bloco, mas o escopo de função.
Isso causa problemas, já que outras partes do código podem acessar e modificar variáveis inesperadamente.
2. Uso de let
e const
Ambas têm escopo de bloco, o que significa que a variável fica restrita ao bloco de código onde foi definida (como dentro de um if
, for
, etc.). Isso ajuda a evitar o "vazamento" de variáveis para o escopo global ou para outras funções.
let
A palavra-chave let
é usada quando você precisa de uma variável cujo valor pode ser alterado durante a execução do código.
Exemplo com let
:
let nome = "José";
nome = "Maria"; // A variável pode ser reatribuída
console.log(nome); // Saída: "Maria"
Aqui, a variável nome
pode ser reatribuída, pois let
permite mudanças no valor da variável.
const
A palavra-chave const
é usada para declarar variáveis que não podem ser reatribuídas após a inicialização. Vale lembrar que a imutabilidade de const
se refere apenas à atribuição da variável.
Se a variável for um objeto ou um array, os elementos ou propriedades do objeto ainda podem ser modificados.
Exemplo com const
:
const sobrenome = "Silva";
// sobrenome = "Costa"; // Isso geraria um erro
console.log(sobrenome); // Saída: "Silva"
Embora const
evite a reatribuição do valor da variável, um objeto atribuído a const
pode ter suas propriedades modificadas.
const pessoa = { nome: "José", idade: 30 };
pessoa.idade = 31; // Isso é permitido
console.log(pessoa.idade); // Saída: 31
3. Evitar a omissão de var
, let
ou const
Outra boa prática é evitar declarar variáveis sem utilizar nenhuma palavra-chave (como var
, let
ou const
). Isso pode acontecer em códigos mais antigos, mas hoje em dia é considerado um erro. Quando você deixa uma variável sem declaração explícita, ela é automaticamente criada no escopo global (se estiver no nível superior), o que pode ser perigoso e difícil de controlar.
Exemplo de erro:
function exemplo() {
nome = "José"; // Variável sem declaração
console.log(nome); // Saída: "José"
}
exemplo();
console.log(nome); // Saída: "José", porque `nome` virou uma variável global
Esse tipo de prática pode criar variáveis globais não intencionais, o que torna o código mais propenso a falhas difíceis de diagnosticar, além de poder levar a problemas de sobrescrita de variáveis.
4. Definindo o escopo de variáveis
Definir corretamente o escopo das variáveis é uma das melhores práticas em JavaScript. Com let
e const
, conseguimos restringir as variáveis ao escopo de bloco, evitando problemas de "vazamento" de variáveis para escopos mais amplos (como o escopo global ou de função).
function exemplo() {
if (true) {
let nome = "José"; // Escopo de bloco
console.log(nome); // Saída: "José"
}
// console.log(nome); // Erro: nome não está acessível fora do bloco
}
exemplo();
continua....