Servem para comparar dois valores, os principais são:
>, <, >=, <=, ===(estritamente igual)!==(estritamente diferente).
O uso de === (igualdade estrita) é a prática recomendada em JavaScript.
Servem para combinar duas ou mais expressões booleanas.
- && (AND): Retorna true somente se ambas as expressões forem verdadeiras.
- || (OR): Retorna true se pelo menos uma das expressões for verdadeira.
Exemplo (Operador && - AND)
Verifica se uma pessoa pode dirigir com base na idade e na posse de CNH.
const idade = 18;
const possuiCNH = true;
if (idade >= 18 && possuiCNH === true) {
console.log('pode dirigir');
} else {
console.log('não pode dirigir');
}Exemplo (Operador || - OR)
Verifica se uma pessoa pode se aposentar com base na idade ou no número de contribuições.
const idade = 60;
const contribuicoes = 180;
if (idade >= 60 || contribuicoes >= 180) {
console.log('pode aposentar');
} else {
console.log('não pode aposentar');
}Em contextos lógicos, o JavaScript converte valores para true (truthy) ou false (falsy).
Valores Falsy: false, 0, "", null, undefined, NaN.
Valores Truthy: Todos os outros valores (como true, números diferentes de zero, strings não vazias).
O operador ! (NOT) inverte o valor lógico de uma expressão.
Ele transforma true em false e false em true.
const cnhEhValida = true;
if (!cnhEhValida) { // Lê-se: "Se CNH *não* é válida"
console.log('não pode dirigir');
}O Operador Condicional (popularmente conhecido como Operador Ternário) é uma forma concisa de substituir o if e else, especialmente quando precisamos retornar um valor com base em uma condição.
Ele é chamado de "ternário" por possuir três operandos:
- A Condição (que será avaliada como truthy ou falsy).
- O Valor se Verdadeiro (executado se a condição for truthy, vem depois do
?). - O Valor se Falso (executado se a condição for falsy, vem depois do
:).
Queremos definir uma saudação com base na existência de um nome.
const nome = 'Fernando';
// CONDIÇÃO ? VALOR_TRUE : VALOR_FALSE
const saudacao = nome ? `olá, ${nome}` : 'olá, pessoa';
console.log(saudacao); // Saída: olá, FernandoSe nome for truthy (como uma string preenchida), saudacao recebe olá, ${nome}. Se nome for falsy (como null ou undefined), recebe olá, pessoa.
O ternário torna o código mais fluido e direto. A mesma lógica com if/else seria mais extensa:
const nome = "Fernando";
let saudacao; // Precisa ser 'let' e declarada fora
if (nome) {
saudacao = `olá, ${nome}`;
} else {
saudacao = 'olá, pessoa';
}O operador ternário não precisa estar ligado a uma variável, ele pode simplesmente executar ações:
// Se 'nome' existir, chama saudar(nome), senão chama saudar('pessoa')
nome ? saudar(nome) : saudar('pessoa');O switch-case é uma estrutura condicional usada como alternativa para múltiplos blocos else if.
Ele é ideal quando temos uma lista de possibilidades baseada em um único valor de entrada (e não em expressões booleanas complexas).
Vamos verificar uma avaliação (nota de 1 a 5).
const avaliacao = 2;
switch (avaliacao) { // O valor a ser verificado entra aqui
case 5:
console.log('avaliação ótima');
break; // O 'break' impede a execução dos 'cases' seguintes
case 4:
console.log('avaliação boa');
break;
case 3:
console.log('avaliação neutra');
break;
// 'default' funciona como o 'else'
default:
console.log('avaliação baixa');
break;
}
// Saída: avaliação baixa- Break: É essencial usar
breakao final de cadacase. Se esquecido, o JavaScript executa ocasecorrespondente E todos oscases abaixo dele (isso é chamado de fall-through). - Default: É o bloco executado se nenhum
casecorresponder ao valor de entrada (similar aoelse). - Limitação: O
switchcompara valores diretos (ex:case 5). Ele não aceita expressões lógicas noscases (ex:case avaliacao > 4).