La capacità di restituire sempre lo stesso output in corrispondenza di un dato input fornisce una caratteristica interessante: la trasparenza referenziale. Il fatto di poter trascurare il contesto in cui viene eseguita una funzione pura, consente di poter sostituire la valutazione di una specifica chiamata di funzione con il suo risultato senza alterare la semantica dell'applicazione. Ad esempio, se abbiamo la seguente funzione pura:
function somma(x, y) {
return x + y;
}
e la seguente espressione:
var risultato = somma(3, 5) * 2;
possiamo tranquillamente sostituire alla chiamata somma(3, 5)
il suo risultato 8
ed essere sicuri di non aver introdotto malfunzionamenti nel comportamento dell'applicazione:
var risultato = 8*2;
Questa osservazione può sembrare banale, ma non è scontata in programmi scritti con un approccio non funzionale. Tecnicamente diciamo che le funzioni pure garantiscono la trasparenza referenziale, cioè la capacità di sostituire una espressione con il suo risultato, mantenendo la correttezza dell'applicazione.