O que são Operadores Lógicos Binários e Como Eles Funcionam?
Operadores lógicos binários ajudam você a avaliar duas expressões e retornar um resultado baseado na veracidade delas. Vamos analisar os três operadores lógicos binários mais comuns: logical AND, logical OR e o operador de coalescência nula.
O operador lógico AND é representado por um duplo e comercial (
&&). Ele verifica se ambos os operandos são verdadeiros e retorna um resultado. Se ambos os operandos forem truthy, ele retorna o segundo valor, ou seja, o que está à direita:
const result = true && 'hello';
console.log(result); // hello
No exemplo acima, o texto hello é registrado no console porque ambos os operandos são true. Se algum dos operandos for falsy, ele retorna o valor falsy:
const result = 0 && 3;
console.log(result); // 0
Como 0 é um valor falsy, o número 0 é registrado no console. E se ambos os operandos forem falsy, ele retorna o primeiro valor falsy:
const result = false && 0;
console.log(result); // false
Como false é um valor falsy, então false é registrado no console. O operador lógico AND é útil quando você quer verificar múltiplas condições e garantir que todas sejam verdadeiras antes de prosseguir. Aqui está um exemplo:
if (2 < 3 && 3 < 4) {
console.log('The if block runs');
} else {
console.log('The else block runs');
}
Na condição, como 2 é menor que 3 e 3 é menor que 4, então a sentença The if block runs será registrada no console.
O operador lógico OR verifica se pelo menos um dos operandos é verdadeiro. Se o primeiro operando for verdadeiro, ele retorna esse valor:
const result = 'This is truthy' || false;
console.log(result); // This is truthy
Se o primeiro operando for falso mas o segundo for verdadeiro, o segundo valor será registrado no console:
const result = 0 || 'This is truthy';
console.log(result); // This is truthy
É comum usar o operador lógico OR em declarações if/else assim:
let userInput;
if (userInput || 'Guest') {
console.log('A user is present');
} else {
console.log('No user detected');
}
Como não atribuímos um valor à variável userInput, ela está atualmente undefined. A condição na declaração if verifica se a variável userInput ou a string Guest são verdadeiras. Como a string Guest é verdadeira em um contexto booleano como este, a string A user is present será registrada no console.
O operador de coalescência nula é mais sofisticado do que o OR lógico e o AND lógico. Representado por um ponto de interrogação duplo (??), ele ajuda em cenários onde você quer retornar um valor somente se o primeiro for null ou undefined. Aqui está um exemplo de como trabalhar com o operador de coalescência nula:
const result = null ?? 'default';
console.log(result); // default
Since null is a nullish value, the string default would be logged to the console. O operador de coalescência nula é incrivelmente útil em situações onde null ou undefined são os únicos valores que devem acionar um valor padrão ou de fallback. Aqui está um exemplo de como lidar com as configurações de preferência de um usuário:
const userSettings = {
theme: null,
volume: 0,
notifications: false,
};
let theme = userSettings.theme ?? 'light';
console.log(theme); // light
No exemplo acima, temos um objeto chamado userSettings que contém as propriedades theme, volume e notifications. Estamos acessando o theme usando a notação de ponto como userSettings.theme. You will learn more about how to work with objects in a future lesson. Como o theme do usuário está atualmente definido como null, a string light será registrada no console.Este módulo não possui perguntas. Marque como concluído.