Programação Funcional

Segue o modelo das funções matemáticas.

Imutabilidade

Por padrão, uma variável, mesmo que modificada em uma função, mantém o mesmo valor.

const variavel = 10;

// Divide um número por 2.
function divideByTwo(num) {
    return num / 2;
}

console.log(divideByTwo(variavel));
// Mesmo que `variavel` tenha sido modificada na função, o seu valor se mantém.
console.log(variavel);

Determinismo

Dado um mesmo argumento, uma função deve sempre produzir o mesmo resultado.

// Soma um número com 2.
function plusTwo(num) {
    return num + 2;
}