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