O que são variáveis não declaradas (undeclared)?
sobes.tech IA
Resposta da IA
As variáveis não declaradas em JavaScript são variáveis que não foram declaradas usando as palavras-chave var, let ou const, mas às quais foi atribuído um valor.
// Declaração explícita
let variávelDeclarada = "Estou declarada";
// Atribuição implícita (cria uma variável não declarada em modo não estrito)
// Em modo estrito ('use strict'), isto causará um erro ReferenceError
variávelNãoDeclarada = "Não estou declarada";
O comportamento das variáveis não declaradas depende do modo de execução do código:
- Modo não estrito: A atribuição de um valor a uma variável não declarada cria uma variável global com esse nome no Window (para navegadores). Isto é considerado uma má prática, pois polui o espaço global e dificulta a depuração.
- Modo estrito (
'use strict'): A atribuição a uma variável não declarada gera um erroReferenceError. Este comportamento é preferível, pois impede a criação acidental de variáveis globais e promove um código mais previsível.
A verificação de uma variável não declarada pode ser feita usando typeof. Uma variável não declarada em modo não estrito terá o tipo 'undefined', assim como uma variável declarada mas não inicializada.
let inicializadaMasIndefinida;
// console.log(typeof inicializadaMasIndefinida); // => 'undefined'
// Em modo não estrito
// variávelNãoDeclarada = "Teste";
// console.log(typeof variávelNãoDeclarada); // => 'undefined'
// Verificação da existência da variável antes de aceder a ela
if (typeof potencialmenteNãoDeclarada !== 'undefined') {
// Código para trabalhar com potencialmenteNãoDeclarada
}
O uso de variáveis não declaradas é uma fonte potencial de erros e dificulta a manutenção do código. Recomenda-se sempre declarar explicitamente as variáveis usando let, const ou var (embora var tenha as suas particularidades e, no código moderno, let e const sejam preferidos). O uso do modo estrito ('use strict') é uma prática padrão para prevenir este tipo de problemas.