Programação e inteligência artificial

JavaScript Const: Guia Completo para Declarar Variáveis

O JavaScript const é uma das formas mais importantes de declarar variáveis no desenvolvimento web moderno. Introduzido no ECMAScript 2015, também chamado de ES6, o termo const permite criar uma associação que não pode ser atribuída novamente depois de receber um valor inicial. Essa característica torna o código mais claro, reduz erros acidentais e comunica a intenção de que determinada referência deve permanecer estável. Porém, entender const exige mais do que saber que ele representa uma “constante”: é preciso conhecer seu escopo, sua relação com objetos e arrays, a diferença entre imutabilidade e reatribuição, além da comparação com let e var. Neste guia, você verá como aplicar variáveis JS de forma segura, legível e alinhada às boas práticas atuais.

Como funciona o JavaScript const na prática

A sintaxe básica do const é direta: a variável deve ser declarada e inicializada na mesma instrução. Por exemplo, const nomeDoProjeto = 'Portal Digital';. Depois dessa declaração, uma nova atribuição como nomeDoProjeto = 'Outro Projeto'; produzirá um erro do tipo TypeError. Isso ocorre porque o identificador foi vinculado inicialmente a um valor e essa vinculação não pode ser substituída.

Uma regra essencial é que const não pode ser declarado sem valor inicial. Portanto, o código const usuario; é inválido e causa erro de sintaxe. Se ainda não houver um valor disponível e ele puder mudar posteriormente, a alternativa adequada costuma ser let usuario;. Essa exigência incentiva declarações mais explícitas e evita variáveis criadas de forma indefinida sem necessidade.

Ao contrário de var, o const JavaScript possui escopo de bloco. Isso significa que ele existe apenas dentro do bloco delimitado por chaves em que foi declarado, como um if, for, função ou bloco isolado. Observe a lógica: se const desconto = 10; estiver dentro de uma condição, ela não poderá ser acessada fora daquela condição. O comportamento diminui colisões entre nomes de variáveis e torna a manutenção mais previsível em aplicações extensas.

Também é importante compreender a chamada zona morta temporal, ou temporal dead zone. Embora as declarações com const sejam reconhecidas no escopo durante a preparação do código, elas não podem ser utilizadas antes da linha da declaração. Assim, tentar executar console.log(apiUrl); const apiUrl = '/api'; gera um erro de referência. Na prática, esse recurso evita que o programa leia uma variável antes que ela tenha sido corretamente inicializada.

As especificações oficiais da linguagem descrevem esse comportamento com precisão na documentação da MDN Web Docs sobre const. Consultar fontes técnicas de referência é uma medida valiosa quando houver dúvidas sobre compatibilidade, regras de escopo ou comportamentos específicos do interpretador.

Constante não significa objeto imutável

Um dos equívocos mais comuns sobre JavaScript const é acreditar que o valor inteiro se torna imutável. Na realidade, const impede a reatribuição da referência, não necessariamente a alteração do conteúdo apontado por ela. Essa diferença é especialmente relevante ao trabalhar com objetos e arrays.

Considere uma declaração como const perfil = { nome: 'Ana', ativo: true };. É permitido alterar uma propriedade existente, por exemplo, perfil.ativo = false;, e também incluir outra propriedade, como perfil.cargo = 'Analista';. O que não é permitido é apontar perfil para outro objeto: perfil = { nome: 'Bruno' };. A referência original deve permanecer a mesma durante toda a execução dentro de seu escopo.

O mesmo princípio vale para arrays. Em const linguagens = ['JavaScript', 'TypeScript'];, métodos mutáveis como push(), pop() e splice() continuam disponíveis. Logo, linguagens.push('Python'); funciona normalmente. Já linguagens = []; falha, pois tenta reatribuir a variável. Para cenários em que a intenção é evitar mudanças no objeto, pode-se utilizar Object.freeze(), observando que seu congelamento é superficial: objetos aninhados ainda podem ser modificados, salvo se forem congelados separadamente.

Em interfaces baseadas em estado, como aplicações com bibliotecas e frameworks modernos, é comum preferir a criação de cópias em vez de mutações diretas. Operadores como ..., conhecidos como spread, ajudam nessa estratégia: const novoPerfil = { ...perfil, ativo: false };. Esse padrão preserva o objeto anterior e cria outro com a propriedade atualizada, favorecendo rastreabilidade e testes.

Quando usar const, let e var

A escolha entre const, let e var influencia diretamente a qualidade das variáveis JS. Em código moderno, a recomendação predominante é começar com const e migrar para let somente quando houver necessidade real de reatribuição. O uso de var costuma ser evitado em novos projetos por apresentar escopo de função, sofrer elevação de forma mais permissiva e permitir redeclarações no mesmo escopo.

Por exemplo, um contador que aumenta ao longo de um laço precisa de let: let total = 0; total += 1;. Já uma configuração de aplicação, uma URL de API, uma função auxiliar, um seletor de elemento ou uma instância que não será substituída são bons candidatos a const. Essa decisão baseada na intenção torna a leitura do código mais rápida: ao encontrar const, outra pessoa desenvolvedora sabe que aquele identificador não receberá outro valor.

Boas práticas para declarar variáveis JS

  • Prefira const por padrão: declare com const toda variável que não precisa ser reatribuída.
  • Use let apenas para valores variáveis: contadores, acumuladores e referências que realmente precisam apontar para outro valor devem usar let.
  • Evite var em código novo: seu escopo de função e a possibilidade de redeclaração favorecem bugs difíceis de identificar.
  • Escolha nomes semânticos: prefira const limiteDeTentativas = 3; a nomes genéricos como x ou dado.
  • Inicialize próximo ao uso: mantenha a declaração em uma posição lógica, reduzindo o risco de referências prematuras e valores desatualizados.
  • Não confunda const com imutabilidade: proteja objetos e arrays quando necessário, usando cópias, Object.freeze() ou estratégias de dados imutáveis.
  • Adote ferramentas de análise: linters como ESLint podem sinalizar variáveis que deveriam ser const, padronizando o time.

Comparativo entre const, let e var

Característicaconstletvar
EscopoBlocoBlocoFunção ou global
ReatribuiçãoNão permitePermitePermite
Redeclaração no mesmo escopoNão permiteNão permitePermite
Inicialização obrigatóriaSimNãoNão
Acesso antes da declaraçãoErro por zona morta temporalErro por zona morta temporalRetorna undefined em muitos casos
Uso recomendadoValor ou referência sem reatribuiçãoValor que mudaráManutenção de código legado
javascript const variaveis

Esse comparativo evidencia por que const e let substituíram amplamente var. A previsibilidade de escopo é uma vantagem concreta, sobretudo em funções longas, módulos e componentes de interface. Além disso, padrões de qualidade automatizados frequentemente sugerem a conversão de let para const quando nenhuma reatribuição é encontrada.

Dúvidas comuns sobre const em JavaScript

O que é JavaScript const?

const é uma palavra-chave usada para declarar uma variável cuja referência não pode ser reatribuída após a inicialização. Ela possui escopo de bloco e deve receber um valor no momento da declaração.

Posso mudar uma propriedade de um objeto declarado com const?

Sim. Um objeto declarado com const pode ter propriedades alteradas, adicionadas ou removidas, porque a referência ao objeto continua igual. O que não pode ocorrer é a reatribuição da variável para um novo objeto.

Qual é a diferença entre const e let?

A principal diferença é a reatribuição. let permite que a variável receba outro valor durante a execução; const não permite. Ambos têm escopo de bloco e estão sujeitos à zona morta temporal.

É possível declarar const dentro de um loop?

Sim. Em um for, const é útil para valores que não precisam mudar em cada bloco de execução. Entretanto, a variável de controle de um contador, que é incrementada, deve ser declarada com let.

Devo sempre usar const em vez de var?

Em projetos novos, geralmente sim quando não houver reatribuição. Use let para valores mutáveis e reserve var para situações de compatibilidade ou manutenção de código legado, após avaliar cuidadosamente seu comportamento.

Conclusão sobre o uso de const

Dominar o JavaScript const é um passo fundamental para escrever código moderno, seguro e fácil de manter. A palavra-chave expressa uma intenção clara: a referência declarada não deverá ser substituída. Somada ao escopo de bloco e à obrigatoriedade de inicialização, ela ajuda a prevenir falhas comuns relacionadas a variáveis globais, redeclarações e alterações involuntárias. Use const como primeira opção, escolha let quando a reatribuição for necessária e evite var em implementações novas. Ao diferenciar referência, mutação e imutabilidade, você terá decisões mais consistentes em scripts simples e sistemas complexos.

Fontes para aprofundamento

Isenção de responsabilidade

Este conteúdo tem finalidade educacional e informativa. Exemplos de código foram simplificados para explicar o funcionamento de const, let e var e podem exigir adaptações conforme o ambiente, a versão do JavaScript, as regras de linting e os requisitos de cada projeto. Consulte a documentação oficial e realize testes antes de aplicar alterações em sistemas de produção.

Compartilhar este post

Stéfano Barcellos

Pesquisador, empresário e escritor focado em educação, orientação sobre negócios. Escreve sobre diversos assuntos com abordagem prática e acessível para o público brasileiro.

Posts relacionados