O Que É Forma Literal
O que é forma literal e por que você provavelmente usa isso todo dia sem notar
Forma literal é simplesmente escrever um valor diretamente no código, ao invés de referenciá-lo por uma variável, constante ou expressão calculada. Um número como 42, uma string como "foo", um booleano true ou false, um array escrito com colchetes diretamente no local de uso — tudo isso é forma literal. O oposto seria usar uma variável que armazena aquele valor previamente. A definição parece óbvia, mas o conceito ganha contornos interessantes quando você começa a encontrar casos em que o uso excessivo de literais gera problemas reais. O problema não é usar literais. O problema é usar literais em massa em contextos onde eles escondem intenção ou criam rigidez difícil de manter. Vou dar um exemplo direto. Escrever new Date("2024-01-01") em várias linhas do seu código é uma forma literal. Funciona. Mas se aquele date aparece em 12 lugares diferentes e você precisa ajustar o fuso horário, vai ter que caçar cada instância. Usar uma constante nomeada resolve isso. A forma literal ainda existe no código, mas ela está contida em um único ponto de verdade.
No JavaScript, por exemplo, literais são everywhere. Um objeto literal { key: value } é mais legível que construir o mesmo objeto com Object.create() e setar propriedades manualmente. Um array literal [1, 2, 3] é direto e claro. Uma regex literal /^[a-z]+$/ evita a armadilha de escapar barras na construção com construtor de String. Cada um desses casos é uma escolha técnica válida, não uma questão de estilo. O que muita gente perde é que formas literais têm limitações concretas que aparecem em produção. Vou compartilhar algo que me pegou recentemente. Eu estava trabalhando num script de migração de dados onde eu tinha cerca de 30 códigos de status escritos como literais espalhados pelo código. Algo como if (status === 'pendente' || status === 'aprovar') { ... } repetido em múltiplos arquivos. Acontece que no meio do projeto, o time decidiu renomear 'aprovar' para 'aprovado' em toda a base. Eu levei duas horas caçando os literais que haviam sido esquecidos. O workaround foi simples: extraí todos esses valores para um objeto de mapeamento no topo do módulo e passei a referenciá-lo. O código ficou mais longo, mas ganhei rastreabilidade. Se tivesse feito isso desde o início, teria economizado aquela janela inteira de debugging. Outro ponto que ninguém mencionam suficiente: formas literais podem esconder efeitos colaterais sutis. Considera isso. Se você passa um array literal como argumento padrão numa função, em algumas linguagens e configurações, o mesmo objeto pode ser compartilhado entre chamadas. Isso significa que modificar o array numa chamada afeta todas as outras. Literal syntax parece inofensivo, mas o motor por trás dele trata aquilo como referência, não como valor isolado. A solução prática é clonar o literal dentro da função ou usar imutabilidade quando o padrão permitir.
Também é importante falar de quando formas literais realmente não fazem sentido. Se você precisa gerar um valor dinâmico com base em entrada do usuário, configuração externa, ou lógica de negócio complexa, forçar uma forma literal só vai te atrapalhar. Nesse caso, construa o valor explicitamente e atribua a uma variável com nome descritivo. O código fica mais verboso, mas quem for ler depois entende o que aconteceu. Há ainda uma nuance técnica sobre performance que vale mencionar. Em geral, literais são mais rápidos porque o interpretador ou compilador pode otimizar melhor valores conhecidos em tempo de compilação. Variáveis exigem lookup em escopo. A diferença é normalmente insignificante em códigos normais, mas em loops extremamente quentes, como processamento de gráficos ou simulações numéricas, essa economia pode somar. Não é motivo para substituir legibilidade por performance, mas é um fator real que desenvolvedores de sistemas críticos consideram. O que eu recomendo de forma pragmática: use forma literal quando o valor é fixo, autoexplicativo e aparece em um ou dois lugares. Mude para uma variável ou constante quando o valor se repete, quando ele carrega significado de negócio que não é óbvio pelo número em si, ou quando ele precisa ser alterado centralizadamente no futuro. Essa regra simples resolve a maioria dos casos sem entrar em dogmas.

Se quiser revisar o conceito rapidamente, a pergunta sobre o que é forma literal tem uma resposta curta: é a notação direta de um valor no código. O resto é entender onde essa notação ajuda e onde ela passa a atrapalhar. A experiência mostra que a linha entre um e outro nem sempre é clara de cara, mas ela fica evidente depois que você enfrenta um bug causado por literais espalhados ou por referência não intencional a um objeto mutável.
Galeria
-
O Que é Sentido Literal - BINKEDU -
Definicao De Linguagem Literal -
Definicao De Linguagem Literal -
Significado de literal - Dicionário Priberam da Língua Portuguesa