Tipos de Dados, Condicionais e Loops
Literais são dados fixos atribuídos diretamente às variáveis, como números, textos, booleanos, arrays e objetos.
42 // número literal "texto" // string literal true, false // booleanos literais [1, 2, 3] // array literal { nome: "Ana" } // objeto literal
Variáveis armazenam valores que podem mudar durante a execução do programa.
let idade = 30; var nome = "Lucas";
Palavra-chave | Escopo | Reatribuível | Hoisting |
---|---|---|---|
var |
função | sim | sim |
let |
bloco | sim | não |
const |
bloco | não | não |
var
em novos projetos — prefira let
ou const
pela previsibilidade de escopo.
Constantes são valores imutáveis, definidos com const
. Devem ser inicializadas no momento da declaração.
const pi = 3.14159;
+ // adição - // subtração * // multiplicação / // divisão % // módulo (resto da divisão) ** // exponenciação
= // atribuição simples += // adição e atribuição -= // subtração e atribuição *= // multiplicação e atribuição /= // divisão e atribuição
== // igualdade (valor) === // igualdade estrita (valor e tipo) != // diferente (valor) !== // diferente estrito (valor e tipo) > // maior que >= // maior ou igual < // menor que <= // menor ou igual
===
e !==
para evitar coerções implícitas de tipo.
&& // e lógico (AND) || // ou lógico (OR) ! // negação (NOT)
O operador ternário é uma forma concisa de escrever uma estrutura if...else
:
condicao ? valorSeVerdadeiro : valorSeFalso;
if
, else
, else if
e switch
.
A estrutura if
permite executar um bloco de código se uma condição for verdadeira.
let idade = 18; if (idade >= 18) { console.log("Você é maior de idade."); }
Permite executar um bloco caso a condição seja verdadeira e outro bloco caso seja falsa.
let idade = 16; if (idade >= 18) { console.log("Maior de idade"); } else { console.log("Menor de idade"); }
Permite verificar múltiplas condições em sequência.
let nota = 7; if (nota >= 9) { console.log("Excelente"); } else if (nota >= 6) { console.log("Aprovado"); } else { console.log("Reprovado"); }
O switch
avalia uma expressão e executa o bloco de código correspondente ao case
correspondente.
let fruta = "banana"; switch (fruta) { case "maçã": console.log("Você escolheu maçã"); break; case "banana": console.log("Você escolheu banana"); break; default: console.log("Fruta não reconhecida"); }
break
após cada case
, ou o JavaScript continuará executando os próximos blocos!
for
, while
, do...while
, além das instruções break
e continue
.
Usado quando se sabe exatamente quantas vezes o loop deve executar.
for (let i = 0; i < 5; i++) { console.log("Repetição número " + i); }
Executa o bloco de código enquanto a condição for verdadeira.
let i = 0; while (i < 5) { console.log(i); i++; }
Executa ao menos uma vez, pois a condição é verificada após a execução.
let i = 0; do { console.log(i); i++; } while (i < 5);
for...in itera sobre as chaves (índices ou nomes) de um objeto ou array:
let pessoa = { nome: "Ana", idade: 25 }; for (let chave in pessoa) { console.log(chave + ": " + pessoa[chave]); }
for...of itera sobre os valores de estruturas iteráveis (arrays, strings, etc):
let frutas = ["maçã", "banana", "uva"]; for (let fruta of frutas) { console.log(fruta); }
break interrompe a execução do laço atual:
for (let i = 0; i < 10; i++) { if (i === 5) break; console.log(i); }
continue pula a iteração atual e segue para a próxima:
for (let i = 0; i < 5; i++) { if (i === 2) continue; console.log(i); }
let
, var
) armazenam valores mutáveis; const
define valores imutáveisif
para condições simples, switch
para múltiplas possibilidades fixasfor
para repetições com contagem conhecida, while
para condições dinâmicasbreak
interrompe loops, continue
pula uma iteraçãoAgora que você domina tipos de dados e estruturas de controle, está pronto para explorar funções, eventos e manipulação do DOM!