ExpertiDict

JavaScript · Avançado · Inglês · Técnico

eval

/ɪˈvæl/função

Função global que executa uma string como código JavaScript no escopo atual. Considerada perigosa e lenta, impede otimizações do motor e abre brecha para injeção de código.

Onde usar

Aparece em código muito antigo e em ferramentas de metaprogramação. Em code review, qualquer eval com dado externo é bloqueio de segurança, e CSPs costumam desativá-lo.

Em código

const dado = '[1, 2]';
console.log(JSON.parse(dado)[0]); // 1, seguro
console.log(eval('2 + 3'));       // 5, evite

Exemplos

Any eval with external input is a security blocker.

Qualquer eval com entrada externa é um bloqueio de segurança.

Replace that eval with JSON.parse.

Troque esse eval por JSON.parse.

Cuidado

Usar eval para converter JSON ou calcular expressões; use JSON.parse ou um parser próprio.

Origem

Abreviação do inglês evaluate, 'avaliar'.

Veja também

Todos os termos de JavaScript