Operador de Nullish Coalescing (??) em Javascript

reisdev

Matheus dos Reis de Jesus

Posted on April 12, 2021

Operador de Nullish Coalescing (??) em Javascript

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";
Enter fullscreen mode Exit fullscreen mode

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";
Enter fullscreen mode Exit fullscreen mode

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 )
Enter fullscreen mode Exit fullscreen mode

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!👋🏽

💖 💪 🙅 🚩
reisdev
Matheus dos Reis de Jesus

Posted on April 12, 2021

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related