Começando a Entender
Antes dessas aulas, eu sabia criar variáveis e pedir dados com prompt.
Mas agora aprendi algo muito mais poderoso: fazer o código tomar decisões sozinho.
Tomando Decisões no Código
Percebi que estruturas condicionais são o coração de qualquer programa. Elas permitem que eu crie lógica, regras e comportamentos diferentes baseados em situações.
if e else.
Meu Primeiro IF
A primeira coisa que aprendi foi a estrutura básica do if.
É surpreendentemente simples, mas super poderoso.
let numero1 = 4;
if (numero1 > 2) {
console.log("O número é maior que 2");
}
Comparando Valores
Descobri que para fazer essas perguntas ao código, eu preciso usar operadores de comparação.
Eles sempre retornam true ou false.
console.log(2 + 2 == 4); // true
console.log(2 + 2 == 5); // false
Múltiplas Condições
Depois de entender o if básico, aprendi que posso encadear várias condições usando
else if e else.
let numero = parseInt(prompt("Digite um número:"));
if (numero > 5) {
console.log("O número é maior que 5");
} else if (numero < 5) {
console.log("O número é menor que 5");
} else {
console.log("O número é igual a 5");
}
else final é como um "caso contrário" - captura tudo que não foi pego antes.
Debugando no Console
Uma das coisas mais úteis que aprendi foi usar o console do navegador para testar e depurar meu código.
- Windows: Ctrl + Shift + J
- Mac: Cmd + Option + J
console.log()
para ver o que está acontecendo.
Salvando Dados no Navegador
Fiquei impressionado quando aprendi sobre localStorage.
Você pode salvar informações que ficam guardadas mesmo depois de fechar a página!
localStorage.setItem("nome", "Gleidson");
let nome = localStorage.getItem("nome");
console.log(nome); // Gleidson
Criando um Relógio Dinâmico
Aprendi sobre setInterval, uma função que executa código repetidamente em intervalos definidos.
Usei isso para criar um relógio que atualiza a cada segundo!
function mostrarHora() {
let agora = new Date();
document.getElementById("relogio").innerHTML = agora.toLocaleTimeString();
}
setInterval(mostrarHora, 1000);
setInterval executa a função mostrarHora a cada 1000 milissegundos (1 segundo).
Operadores que Conheci
Durante as aulas, vi vários tipos de operadores. Cada um tem seu propósito específico.
let numero = 2;
numero += 2; // agora numero vale 4 (mesma coisa que numero = numero + 2)
let numero = 2;
numero += 2; // número agora é 4
numero -= 2; // número agora é 2
let soma = 2 + 3; // 5
let subtracao = 5 - 2; // 3
let multiplicacao = 2 * 3; // 6
let divisao = 6 / 2; // 3
let modulo = 5 % 2; // 1 (resto da divisão)
console.log(2 == "2"); // true (compara só o valor)
console.log(2 === "2"); // false (compara valor E tipo)
console.log(2 != "2"); // false
console.log(2 !== "2"); // true
console.log(2 > 1); // true
console.log(2 < 3); // true
console.log(2 >= 2); // true
console.log(2 <= 1); // false
== e ===.
O duplo igual compara só valores, o triplo compara valor E tipo. É melhor usar o triplo para evitar bugs!
let a = true;
let b = false;
console.log(a && b); // false (E - ambos precisam ser true)
console.log(a || b); // true (OU - pelo menos um precisa ser true)
console.log(!a); // false (NÃO - inverte o valor)
(idade > 18 && temCNH)
Switch - Uma Alternativa
Quando tenho muitos valores específicos para checar, aprendi que o switch é mais organizado que vários if encadeados.
switch (expressao) {
case valor1:
// Código se expressao === valor1
break;
case valor2:
// Código se expressao === valor2
break;
default:
// Código se nenhum case foi atendido
}
let modo = prompt("Digite um modo: dark, red ou blue:");
switch (modo) {
case "dark":
document.body.style.backgroundColor = "black";
document.body.style.color = "white";
break;
case "red":
document.body.style.backgroundColor = "red";
document.body.style.color = "white";
break;
case "blue":
document.body.style.backgroundColor = "blue";
document.body.style.color = "white";
break;
default:
document.body.style.backgroundColor = "pink";
document.body.style.color = "black";
}
break é essencial!
Sem ele, o JavaScript continua executando os próximos cases mesmo depois de encontrar uma correspondência.
Foi um bug que passei um tempão procurando até o professor explicar!
Ternário - O IF Compacto
O operador ternário foi uma das últimas coisas que aprendi. É uma forma super compacta de escrever um if...else simples.
condição ? valorSeVerdadeiro : valorSeFalso
let modo = "dark";
let mensagem = modo ? "Está definida" : "Não está definida";
console.log(mensagem); // "Está definida"
let modo = "dark";
let mensagem;
if (modo) {
mensagem = "Está definida";
} else {
mensagem = "Não está definida";
}
console.log(mensagem);
let modo = "dark";
let mensagem = modo
? "Está definida"
: "Não está definida";
console.log(mensagem);
true ou false explicitamente,
mas tudo pode ser avaliado como verdadeiro ou falso.
console.log(Boolean(0)); // false
console.log(Boolean("")); // false
console.log(Boolean("texto")); // true
console.log(Boolean(123)); // true
console.log(Boolean([])); // true (array vazio é true!)
console.log(Boolean({})); // true (objeto vazio é true!)
[] ou objeto vazio {}
são considerados verdadeiros! Só preciso lembrar dos 6 valores que são falsos.
// Checando igualdade
let modo = "dark";
let mensagem = (modo === "dark")
? "Modo escuro ativado"
: "Modo claro ativado";
console.log(mensagem); // "Modo escuro ativado"
// Ternário aninhado (funciona, mas pode ficar confuso)
let numero = 5;
let tipoNumero = (numero > 0)
? "Positivo"
: (numero < 0)
? "Negativo"
: "Zero";
console.log(tipoNumero); // "Positivo"
if...else if...else normal.
O que Tirei Disso Tudo
Essas aulas mudaram completamente minha forma de pensar sobre programação. Antes, meu código era linear - fazia uma coisa após a outra. Agora ele pode tomar decisões!
- Condicionais são a base da lógica de programação
- Existem várias formas de escrever a mesma lógica (
if,switch, ternário) - O console é meu melhor amigo para debug
- Operadores lógicos permitem criar condições complexas
- localStorage e setInterval abrem um mundo de possibilidades
Sobre este Projeto
Desenvolvido por: Guilherme Queiroz @guielihan
Orientação: Professor Luan - GoDev
Este projeto documenta meu aprendizado sobre JavaScript, estruturas condicionais, operadores e conceitos fundamentais da linguagem. Criei esta página para consolidar o conhecimento e ter um material de consulta personalizado.