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 vare 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....