JavaScriptFunçõesavancado

Função pura vs impura

Funções puras são essenciais para código previsível, especialmente em gerenciamento de estado ou testes. Em projetos reais, funções que modificam estado externo introduzem bugs difíceis de rastrear — por isso bibliotecas como Redux exigem pureza. Dominar funções puras ajuda a escrever código mais fácil de entender e depurar.

O PROBLEMA

Demonstre a diferença entre função pura e impura. Refatore uma impura em pura.

EXEMPLO

// Impura
function addItem(arr, item) { arr.push(item); }
// Pura
const addItem = (arr, item) => [...arr, item]

SOBRE O CONCEITO

Uma função pura retorna sempre o mesmo resultado para os mesmos argumentos e não causa efeitos colaterais. A função impura addItem faz arr.push(item), que modifica o array original — isso é um efeito colateral. A versão pura retorna um novo array com [...arr, item], mantendo o original intacto. Erros comuns incluem alterar parâmetros diretamente (como arr[index] = valor) ou depender de variáveis globais. O uso de spread e return é permitido; loops e class não são necessários.

RESOLUÇÃO

Mais exercícios de Funções

JSF019 · IntermediárioComposição de funçõesJSF020 · IntermediárioIIFEJSF022 · AvançadoGenerator functionJSF024 · AvançadoTrampolim para recursão
Ver todos os exercícios de JavaScript