Operador de Nullish Coalescing (??) em Javascript

Operador de Nullish Coalescing (??) em Javascript

O operador de coalescência nula (??) é muito utilizado para validação de valores e para valores condicionais.

Capa por Evan Dennis no Unsplash

Sumário

Introdução

Talvez em algum momento você tenha se deparado com um trecho de código em Javascript da seguinte maneira:

const valor = valorReal || "valorPadrão";

O operador || usado acima é chamado de OU lógico, e funciona da seguinte maneira: Se o valor à esquerda do operador for verdadeiro, seu valor será atribuído à variável valor. Se o seu valor for falso, a variável valor receberá o valor à direta, "valorPadrão".

Se você já está habituado com Javascript, deve saber que existem vários problemas com relação a falsidade ou veracidade de valores na linguagem. Exemplo: "" e 0 são considerados valores falsos. Logo, se em um algoritmo "" ou 0 forem valores válidos, o operador || não iria fornecer o resultado necessário. É aí que entra o operador de Coalescência Nula(ou Nullish Coalescing).

O operador ??

Agora que você já entendeu o problema, vêm a solução. O operador de Coalescência Nula é representado por ?? e utilizado da seguinte forma:

const valor = valorReal ?? "valorPadrão";

Nesse caso, se o valor da variável valorReal for null ou undefined, a variável valor receberá "valorPadrão". Caso contrário, ela receberá o valor de valorReal.

Caso de Uso

Pense no seguinte cenário: Você está fazendo um cálculo que utiliza um coeficiente. Se o coeficiente não for fornecido, ele irá receber um valor padrão, sendo 0 um valor válido. Como comentei, o operador || iria impedir que o 0 fosse utilizado. Nesse caso, o operador ?? se torna muito útil. Confira a representação desse problema abaixo:

function calcularResultado(x,y,coeficiente) { ;
    const c = coeficiente ?? 0.5;
    return x + y * c;
}

const resultado = calculaResultado(2,3);
console.log(resultado) // Saída: 3.5 ( 2 + 3 * 0,5 )

A função calculaResultado usa o ?? para verificar se o parâmetro coeficiente foi passado para a função. Caso tenha sido, seu valor será usado. Se não, o coeficiente padrão será 0.5.

Considerações

O caso que citei for um exemplo simples, mas o operador ?? pode ser útil em muitas situações e garantir uma maior confiabilidade no seu código.

Gostou deste artigo? Me siga para mais conteúdos como esse!

Minhas redes sociais:

Twitter | Instagram | Youtube.

Até o próximo artigo!👋🏽

Did you find this article valuable?

Support Matheus dos Reis de Jesus by becoming a sponsor. Any amount is appreciated!