Operadores Condicionais ?: e ?? em JavaScript
Os operadores condicionais permitem verificar uma condição e, dependendo do resultado da verificação, executar certas ações. Aqui examinaremos o operador ?:
??
Operação Ternária
A operação ternária consiste em três operandos e é definida da seguinte forma:
[primeiro operando - condição] ? [segundo operando] : [terceiro operando]
Dependendo da condição no primeiro operando, a operação ternária retorna o segundo ou o terceiro operando. Se a condição no primeiro operando for true
false
const x = 1;
const y = 2;
const result = x < y ? x : y;
console.log(result); // 1
Aqui, o primeiro operando representa a condição x < y
x
y
x
result
x
Se o valor da constante a for maior ou igual ao valor da constante y
y
result
y
Os operandos também podem ser expressões:
const x = 1;
const y = 2;
const result = x < y ? x + y : x - y;
console.log(result); // 3
Neste exemplo de código, o primeiro operando representa a mesma condição que no exemplo anterior, mas o segundo e terceiro operandos representam operações aritméticas. Se o valor da constante a for menor que o valor da constante y
a + y
x
y
Se o valor da constante a for maior ou igual ao valor da constante y
x - y
x
y
Operador ??
O operador ??
null
undefined
[operando esquerdo] ?? [operando direito]
O operador retorna o valor do operando esquerdo, se ele NÃO for igual a null
undefined
const result = "hello" ?? "world";
console.log(result); // hello
console.log(0 ?? 5); // 0
console.log("" ?? "javascript"); // "" - string vazia
console.log(false ?? true); // false
console.log(null ?? "not null"); // not null
console.log(undefined ?? "defined"); // defined
console.log(null ?? null); // null
console.log(undefined ?? undefined); // undefined
Operador ??=
O operador ??
??=
null
undefined
[operando esquerdo] ?? [operando direito]
Se o operando esquerdo for igual a null
undefined
const message = "Hello JavaScript";
let text = "Hello work!"
text ??= message;
console.log(text); // Hello work!
Aqui, a variável text não é igual a null
undefined
const message = "Hello JavaScript";
let text = null;
text ??= message;
console.log(text); // Hello JavaScript
Aqui, a variável text é igual a null
??=
message