Diferenças entre var, let e const no Apps Script

Foto do autor
Sávio Ribeiro 📅 14/09/2025 20:40
⏱️7 minutos de leitura

Se você programa no Google Apps Script (GAS), vai notar que ele usa JavaScript moderno na sua sintaxe, o que inclui var, let ou const para declarar uma variável. Mas essas três formas de declarar variáveis comportam-se de modos diferentes, o que impacta legibilidade, manutenção e bugs no seu código. Vamos te explicar como funcionam, com exemplos, diferenças de escopo (scope), hoisting, mutabilidade, e quando usar cada uma.

O que é var, let e const

Resumidamente, essa tabela pode te ajudar a entender o que é cada um dos tipos:

DefiniçãoO que faz
varDeclara uma variável com escopo de função ou global. É “antigo” no JS, presente desde versões mais antigas.
letIntroduzido no ES6; escopo de bloco (o bloco = { … }), ou seja mais previsível. Pode ser reatribuída.
constTambém escopo de bloco; não se pode reatribuir depois de definido. Deve ser inicializado na declaração.

Na prática, o escopo de acesso a variável da sua função estará dessa forma com cada definição:

  • var: se você declarar dentro de uma função, a variável existe em toda a função. Se dentro de um bloco (por exemplo, if ou for), ainda assim ela “vaza” para fora desse bloco.
  • let e const: escopo de bloco, só estão visíveis dentro do bloco {} em que foram declarados. Se você declarar algo com let/const dentro de um if, loop ou bloco, fora desse bloco não existe.

Atualizar valores da variável – reatribuição

Para cada um dos tipos, temos as seguintes regras:

  • var: pode ser reatribuída e redeclarada no mesmo escopo.
  • let: pode ser reatribuída, mas não redeclarada no mesmo escopo (o que reduz erros).
  • const: não pode ser reatribuída nem redeclarada no mesmo escopo. Mas atenção: se for um objeto ou array, suas propriedades podem ser alteradas (mutabilidade do conteúdo), só o “ponteiro” da variável para aquele objeto não pode mudar.

Usando var na prática

function exemploVar() {
  if (true) {
    var x = 'var dentro do bloco';
  }
  Logger.log(x);  // imprime 'var dentro do bloco' – var vaza do bloco
}

Note que a variável x está dentro de um bloco if, mas ao usar var é permitido que a variável seja acessada fora do bloco. Assim como é permitido a reescrita do valor dentro dessa variável.

No contexto do Apps Script e para automações comuns do dia a dia, quase nunca fará diferença o a definição que você vai utilizar.

Usando let e const na prática

function exemploLetConst() {
  if (true) {
    let y = 'let dentro do bloco';
    const z = 'const dentro do bloco';
    Logger.log(y);  // ok
    Logger.log(z);  // ok
  }
  Logger.log(y);  // erro – y não definido
  Logger.log(z);  // erro – z não definido
}

Perceba que no caso do let e const, essas só podem ser acessadas dentro do bloco.

E no caso de const, não conseguimos reescrever o valor de forma alguma, embora conseguimos atualizar um atributo.

function exemploConstObjeto() {
  const obj = { nome: 'Alice' };
  obj.nome = 'Bob'; // ok, mutação permitida
  // obj = {};        // erro: reassign de const
}

Diferenças entre var, let e const: quando usar cada um e boas práticas

Como disse, se você trabalha sozinho e é responsável pela manutenção dos scripts, não vai fazer muita diferença usar var, const ou let. Eu diria que nesse caso a importância é puramente se o seu script cumpre com o seu dever e não gera constantes erros ou retrabalhos.

Mas para as boas práticas, principalmente se você trabalha em equipe, considere:

  • Usar const por padrão, sempre que a variável não for mudada depois de atribuída. Isso deixa claro que aquele valor não será alterado, melhora legibilidade e ajuda a evitar bugs acidentais.
  • Use let quando precisar reatribuir: por exemplo contadores de loop, valores temporários, etc.
  • Evite usar var em código novo, a menos que você tenha um razão específica, compatibilidade com scripts mais antigos ou alguma restrição.
  • Declare variáveis no menor escopo possível: se vai usar só dentro de um bloco, use let ou const dentro do bloco. Isso ajuda no entendimento e no desempenho (menor chance de conflitos).
  • Seja consistente no estilo do seu código: definir um padrão (por exemplo: constlet → nunca var) ajuda equipe ou quando voltar ao código depois.

Conclusão

Para quem está começando, não tem vícios do JavaScript mais antigo ou buscando escrever scripts mais confiáveis:

  • Comece preferindo const, use let quando necessário, e evite var, a menos que seja antigo ou por causa de compatibilidade.
  • Sempre declare variáveis antes de usá-las.
  • Mantenha variáveis no escopo mais restrito possível.
  • Use nomes significativos e constantes para valores fixos.

Dessa forma, você terá código mais limpo, menos propenso a erros inesperados e mais fácil de entender para outros (ou você mesmo no futuro).

Sávio Ribeiro
Compartilho dicas sobre análise de dados, automação e programação de maneira simples e acessível, com foco especial nas ferramentas do Google Workspace. Conecte-se comigo no LinkedIn.

PARTICIPE DO NOSSO GRUPO NO WHATSAPP!
É 100% GRÁTIS!

Tópicos da publicação

Comentários