Operadores
Operadores em JavaScript: Guia Completo para Iniciantes
Os operadores são como ferramentas que usamos para fazer coisas com valores e variáveis. Pense neles como os sinais matemáticos que você aprendeu na escola, mas com alguns superpoderes extras!
Operadores Aritméticos
São os que fazem contas básicas. Vamos ver cada um:
let a = 10;
let b = 3;
// Soma (+)
console.log(a + b); // 13
// Subtração (-)
console.log(a - b); // 7
// Multiplicação (*)
console.log(a * b); // 30
// Divisão (/)
console.log(a / b); // 3.3333...
// Módulo (%) - resto da divisão
console.log(a % b); // 1 (porque 10 dividido por 3 sobra 1)
// Exponenciação (**) - potência
console.log(a ** b); // 1000 (10 elevado a 3)
Dica importante: O operador % é muito útil para saber se um número é par ou ímpar:
let numero = 7;
if (numero % 2 === 0) {
console.log("É par!");
} else {
console.log("É ímpar!");
}
Operadores de Incremento e Decremento
São atalhos para aumentar ou diminuir valores em 1:
let contador = 0;
// Incremento (++)
contador++; // agora contador vale 1
contador++; // agora contador vale 2
// Decremento (--)
contador--; // agora contador vale 1
contador--; // agora contador vale 0
console.log(contador); // 0
Cuidado com a posição! Existe diferença entre ++variavel e variavel++:
let x = 5;
// Pré-incremento: primeiro incrementa, depois usa
console.log(++x); // 6 (x virou 6, e mostrou 6)
let y = 5;
// Pós-incremento: primeiro usa, depois incrementa
console.log(y++); // 5 (mostrou 5, depois y virou 6)
console.log(y); // 6 (agora mostra o valor atualizado)
Operadores de Comparação
Usamos para comparar valores e obter true (verdadeiro) ou false (falso):
let idade = 18;
// Maior que (>)
console.log(idade > 18); // false
// Menor que (<)
console.log(idade < 18); // false
// Maior ou igual (>=)
console.log(idade >= 18); // true
// Menor ou igual (<=)
console.log(idade <= 18); // true
A DIFERENÇA CRUCIAL: == vs ===
Essa é uma das maiores pegadinhas do JavaScript para iniciantes!
== (Comparação solta)
Compara só o valor, ignorando o tipo:
console.log(5 == "5"); // true! (porque o valor é igual)
console.log(0 == false); // true! (porque 0 é considerado falso)
console.log("" == false); // true! (string vazia é considerada falsa)
=== (Comparação estrita)
Compara o valor E o tipo:
console.log(5 === "5"); // false! (número vs string)
console.log(0 === false); // false! (número vs booleano)
console.log("" === false); // false! (string vs booleano)
Regra de ouro: SEMPRE use === e !== a menos que você tenha um motivo muito específico para usar == ou !=.
let numero = "10";
let numeroReal = 10;
// Problema que pode acontecer com ==
if (numero == numeroReal) {
console.log("São iguais... mas cuidado!");
}
// Mais seguro com ===
if (numero === numeroReal) {
console.log("Isso só roda se forem exatamente iguais!");
} else {
console.log("São diferentes: um é string, outro é número");
}
Operadores Lógicos
Combinam condições para criar lógicas mais complexas:
AND (&&) - "E"
Todas as condições precisam ser verdadeiras:
let idade = 20;
let temCarteira = true;
// Pode dirigir? Precisa ter 18+ E ter carteira
if (idade >= 18 && temCarteira) {
console.log("Pode dirigir!");
}
let temCarro = false;
// Só dirige se tiver carro também
if (idade >= 18 && temCarteira && temCarro) {
console.log("Vai dirigir hoje!");
} else {
console.log("Melhor pegar ônibus...");
}
OR (||) - "OU"
Pelo menos uma condição precisa ser verdadeira:
let temDinheiro = false;
let temCartao = true;
// Pode comprar? Se tiver dinheiro OU cartão
if (temDinheiro || temCartao) {
console.log("Pode comprar!");
}
let estaChovendo = true;
let estaFrio = false;
// Vai ao parque? Se não estiver chovendo OU estiver frio
if (!estaChovendo || estaFrio) {
console.log("Vamos ao parque!");
} else {
console.log("Melhor ficar em casa...");
}
NOT (!) - "NÃO"
Inverte o valor (vira o oposto):
let estaLogado = false;
// Se NÃO estiver logado
if (!estaLogado) {
console.log("Faça login primeiro!");
}
let numero = 0;
console.log(!numero); // true (porque 0 é considerado falso)
let nome = "";
console.log(!nome); // true (string vazia é considerada falsa)
Operadores de Atribuição
Usamos para dar valores às variáveis:
let x = 10;
// Atribuição simples (=)
x = 5; // x agora vale 5
// Atalhos para operações
x += 3; // equivalente a: x = x + 3 (x vira 8)
x -= 2; // equivalente a: x = x - 2 (x vira 6)
x *= 4; // equivalente a: x = x * 4 (x vira 24)
x /= 6; // equivalente a: x = x / 6 (x vira 4)
console.log(x); // 4
Exemplo prático de uso:
let pontos = 0;
// Jogador ganhou 100 pontos
pontos += 100;
// Perdeu 30 pontos
pontos -= 30;
// Bônus de 2x
pontos *= 2;
console.log(`Pontuação final: ${pontos}`); // 140
Operador Ternário
É uma forma compacta de fazer um if/else. A estrutura é:
condição ? valorSeVerdadeiro : valorSeFalso
let idade = 20;
// Versão com if/else
let podeBeber;
if (idade >= 18) {
podeBeber = "Pode";
} else {
podeBeber = "Não pode";
}
// Versão com ternário (mais curta!)
let podeBeber = idade >= 18 ? "Pode" : "Não pode";
console.log(podeBeber); // "Pode"
Mais exemplos do ternário:
let nota = 7;
let resultado = nota >= 6 ? "Aprovado" : "Reprovado";
console.log(resultado); // "Aprovado"
let temperatura = 30;
let clima = temperatura > 25 ? "Quente" : "Frio";
console.log(clima); // "Quente"
// Pode ser usado até para atribuir valores
let usuario = null;
let nomeExibido = usuario ? usuario.nome : "Visitante";
console.log(nomeExibido); // "Visitante"
Erros Comuns que Iniciantes Cometem
// ❌ Erro: Confundir = com ==
if (x = 5) { // Isso ATRIBUI 5 a x, não compara!
// Sempre vai entrar aqui
}
// ✅ Correto:
if (x === 5) {
// Só entra se x for exatamente 5
}
// ❌ Erro: Usar == ao invés de ===
if (0 == false) { // true! Pode causar bugs
console.log("Isso roda, mas é estranho...");
}
// ✅ Correto:
if (0 === false) { // false! Bem mais previsível
console.log("Isso nunca roda");
}
// ❌ Erro: Esquecer parênteses em condições lógicas
if (idade >= 18 && temCarteira || temCarro) {
// Pode ser interpretado de forma diferente do que você pensa!
}
// ✅ Correto: Use parênteses para deixar claro
if (idade >= 18 && (temCarteira || temCarro)) {
// Agora está claro: precisa ter 18+ E (carteira OU carro)
}
Dicas Finais
- Sempre use
===em vez de==- vai te salvar de muitos bugs - Use o operador ternário para if/else simples, mas não exagere
- Parênteses são seus amigos em condições complexas
- O módulo
%é ótimo para verificar números pares/ímpares - Teste seus operadores no console do navegador para ver como funcionam
// Exemplo completo misturando operadores
let salario = 3000;
let temCursoSuperior = true;
let anosExperiencia = 2;
let bonus = (salario > 2000 && temCursoSuperior) ? salario * 0.1 : salario * 0.05;
let valeRefeicao = anosExperiencia >= 2 ? 500 : 300;
console.log(`Bônus: R$ ${bonus}`);
console.log(`Vale refeição: R$ ${valeRefeicao}`);
Pratique esses operadores no console do navegador, crie pequenos programas com eles, e logo você estará usando naturalmente! 🚀