Operador de Nullish Coalescing (??) em Javascript
Matheus dos Reis de Jesus
Posted on April 12, 2021
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!👋🏽
Posted on April 12, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.