🔤Declaração de Variáveis
Introdução às formas de declarar variáveis em JavaScript: var, let, e const. Explicação das características, escopo, hoisting e melhores práticas de uso para cada uma.
Introdução
Em JavaScript, há três maneiras principais de declarar variáveis: var, let, e const. Cada uma tem suas próprias características e melhores práticas de uso. Vamos explorar cada uma delas em detalhes.
Tipos de Declaração
1. var
varCaracterísticas:
Escopo de Função: Variáveis declaradas com
vartêm escopo de função, o que significa que são acessíveis dentro da função onde foram declaradas.Hoisting: Variáveis
varsão elevadas (hoisted) ao topo de seu contexto de execução. No entanto, sua inicialização não é elevada.
Exemplo:
function exemploVar() {
console.log(a); // undefined
var a = 10;
console.log(a); // 10
}
exemploVar();No exemplo acima, a declaração de a é elevada ao topo da função, mas a inicialização (a = 10) permanece no local original.
Uso Comum:
Antes do ES6, var era a única maneira de declarar variáveis. Hoje, é geralmente recomendado evitar var em favor de let e const para evitar problemas de escopo e hoisting.
2. let
letCaracterísticas:
Escopo de Bloco: Variáveis declaradas com
lettêm escopo de bloco, o que significa que são acessíveis apenas dentro do bloco{}onde foram declaradas.Não permite redeclaração: Uma variável declarada com
letnão pode ser redeclarada no mesmo escopo.
Exemplo:
No exemplo acima, a dentro do bloco if é uma variável diferente de a fora do bloco if.
Uso Comum:
let é ideal para variáveis que precisam ter seus valores reatribuídos e cujo escopo deve ser limitado ao bloco onde foram declaradas.
3. const
constCaracterísticas:
Escopo de Bloco: Como
let, variáveis declaradas comconsttêm escopo de bloco.Imutável: Uma vez atribuído um valor a uma variável
const, ele não pode ser reatribuído. No entanto, objetos e arrays declarados comconstpodem ser modificados.
Exemplo:
No exemplo acima, variável a não pode ser alterada, mas os elementos do array arr podem ser modificados.
Uso Comum:
const é ideal para variáveis que não devem ser reatribuídas, como valores constantes ou referências a objetos e arrays que serão modificados internamente.
Comparação e Boas Práticas
Escopo:
var: Funçãoleteconst: Bloco
Redeclaração:
var: Permitidaleteconst: Não permitida no mesmo escopo
Hoisting:
var: Declarada e inicializada comoundefinedleteconst: Declaradas, mas não inicializadas
Mutabilidade:
varelet: Pode ser reatribuídoconst: Não pode ser reatribuído, mas objetos e arrays podem ser modificados
Boas Práticas
Prefira
constsempre que possível. Useletquando souber que a variável precisa ser reatribuída.Evite
varpara evitar problemas de escopo e hoisting.
Atualizado
Isto foi útil?