Operadores lógicos no JavaScript
Os operadores lógicos no JavaScript são usados para realizar operações lógicas em valores booleanos (true
ou false
). Eles são amplamente utilizados em estruturas condicionais e expressões para controlar o fluxo do programa.
Operador | Nome | Descrição |
---|---|---|
&& | E (AND) | Retorna true se ambas as expressões forem verdadeiras. Caso contrário, retorna false . |
|| | OU (OR) | Retorna true se pelo menos uma das expressões for verdadeira. Caso contrário, retorna false . |
! | NÃO (NOT) | Inverte o valor lógico da expressão. Retorna true se a expressão for falsa, e false se for verdadeira. |
Operador lógico &&
(AND)
O operador &&
retorna true
se ambos os operandos forem true
. Caso contrário, retorna false
.
const a = true
const b = false
console.log(a && b) // false
console.log(a && true) // true
Operador lógico ||
(OR)
O operador ||
retorna true
se pelo menos um dos operandos for true
. Retorna false
apenas se ambos forem false
.
const a = true
const b = false
console.log(a || b) // true
console.log(b || false) // false
Operador lógico !
(NOT)
O operador !
inverte o valor lógico de um operando. Se o valor for true
, ele retorna false
, e vice-versa.
const a = true
console.log(!a) // false
console.log(!false) // true
Valor padrão com ||
O operador ||
pode ser usado para definir um valor padrão para uma variável. Ele avalia os operandos da esquerda para a direita e retorna o primeiro valor que for considerado "verdadeiro". Se todos os valores forem "falsos", ele retorna o último valor.
Exemplo básico
Se uma variável não tiver um valor válido, você pode usar ||
para atribuir um valor padrão:
let x
let y = x || 1000
console.log(y) // 1000
Neste exemplo, como x
é undefined
(falsy), o operador ||
retorna o valor à direita, que é 1000
.
No JavaScript, os seguintes valores são considerados "falsos" (falsy): undefined
, null
, false
, 0
, NaN
ou ''
(uma string vazia).
Outro exemplo:
let nomeUsuario = ''
// Define "Convidado" como valor padrão se nomeUsuario estiver vazio
const nomeExibicao = nomeUsuario || 'Convidado'
console.log(`Bem-vindo, ${nomeExibicao}!`)
Saída:
Bem-vindo, Convidado!
Precedência dos operadores lógicos
A precedência determina a ordem em que os operadores são avaliados em uma expressão. Operadores com maior precedência são avaliados antes dos operadores com menor precedência. Isso é especialmente importante em expressões complexas, onde a ordem de avaliação pode alterar o resultado final.
No caso dos operadores lógicos, a ordem de precedência é a seguinte:
!
(NOT)&&
(AND)||
(OR)
Você pode usar parênteses para alterar a ordem de avaliação e garantir que a expressão seja avaliada da forma desejada.
const a = true
const b = false
const c = true
console.log(a || b && c) // true (b && c é avaliado primeiro)
console.log((a || b) && c) // true (a || b é avaliado primeiro)
Exemplos práticos
Verificando múltiplas condições
Você pode combinar operadores lógicos para verificar se duas condições são verdadeiras:
const usuario = "admin"
const senha = "1234"
// Verifica se o usuário e a senha estão corretos
const loginValido = usuario === "admin" && senha === "1234"
console.log(loginValido) // true
Configurando valores padrão
O operador ||
pode ser usado para atribuir um valor padrão a uma variável:
let nomeUsuario = ""
// Define "Convidado" como valor padrão se nomeUsuario estiver vazio
const nomeExibicao = nomeUsuario || "Convidado"
console.log(nomeExibicao) // "Convidado"
Negando uma condição
O operador !
pode ser usado para inverter o valor lógico de uma expressão:
const estaLogado = false
// Inverte o valor de estaLogado
const precisaFazerLogin = !estaLogado
console.log(precisaFazerLogin) // true
Validando intervalos
Você pode combinar operadores lógicos para validar intervalos de valores:
const idade = 25
if (idade >= 18 && idade <= 65) {
console.log("Você está na faixa etária permitida.")
}
else {
console.log("Fora da faixa etária permitida.")
}
Os operadores lógicos são ferramentas poderosas para criar condições complexas e controlar o fluxo do seu programa de forma eficiente.