[JS] Operador de Nullish Coalescing (??)

Capa por Evan Dennis no Unsplash

Sumário

Introdução
O operador ??
Caso de uso
Considerações

Introdução

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

const valor = …


This content originally appeared on DEV Community and was authored by Matheus dos Reis de Jesus

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!??


This content originally appeared on DEV Community and was authored by Matheus dos Reis de Jesus


Print Share Comment Cite Upload Translate Updates
APA

Matheus dos Reis de Jesus | Sciencx (2021-04-12T12:08:06+00:00) [JS] Operador de Nullish Coalescing (??). Retrieved from https://www.scien.cx/2021/04/12/js-operador-de-nullish-coalescing/

MLA
" » [JS] Operador de Nullish Coalescing (??)." Matheus dos Reis de Jesus | Sciencx - Monday April 12, 2021, https://www.scien.cx/2021/04/12/js-operador-de-nullish-coalescing/
HARVARD
Matheus dos Reis de Jesus | Sciencx Monday April 12, 2021 » [JS] Operador de Nullish Coalescing (??)., viewed ,<https://www.scien.cx/2021/04/12/js-operador-de-nullish-coalescing/>
VANCOUVER
Matheus dos Reis de Jesus | Sciencx - » [JS] Operador de Nullish Coalescing (??). [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/04/12/js-operador-de-nullish-coalescing/
CHICAGO
" » [JS] Operador de Nullish Coalescing (??)." Matheus dos Reis de Jesus | Sciencx - Accessed . https://www.scien.cx/2021/04/12/js-operador-de-nullish-coalescing/
IEEE
" » [JS] Operador de Nullish Coalescing (??)." Matheus dos Reis de Jesus | Sciencx [Online]. Available: https://www.scien.cx/2021/04/12/js-operador-de-nullish-coalescing/. [Accessed: ]
rf:citation
» [JS] Operador de Nullish Coalescing (??) | Matheus dos Reis de Jesus | Sciencx | https://www.scien.cx/2021/04/12/js-operador-de-nullish-coalescing/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.