Cheatsheet JavaScript
Linguagem de programação para web e aplicações
JavaScript
Básico
Hello World
console.log("Hello World");Mostra texto no console — útil para debug rápido.
Typeof
typeof "abc"; // "string"
Retorna o tipo de uma variável.
Operadores aritméticos
+, -, *, /, %, ++, --
Operações básicas de matemática em JavaScript.
Switch
switch(day){ case 1: break; default: ... }Alternativa para múltiplas comparações.
Loops For...in
for(let key in obj){ console.log(key, obj[key]); }Percorre propriedades de objetos.
Arrays básicos
const arr = [1, 2, 3, 4];
Coleção de valores indexados numericamente.
Verificar existência de propriedade
"name" in obj; obj.hasOwnProperty("age");Checar se um objeto possui determinada propriedade.
Comentários
// Comentário de uma linha
/* Comentário multilinha */
Permite adicionar notas que o JS ignora.
Conversão de tipos
Number("123"); String(123); Boolean(0);Converte valores entre tipos primitivos.
Operadores de comparação
==, ===, !=, !==, <, <=, >, >=
Comparar valores e tipos.
Loops For
for(let i=0; i<5; i++){ console.log(i); }Repetição controlada por contador.
Funções
function soma(a,b){ return a+b; }Declaração clássica de função.
Acessar elementos de array
console.log(arr[0]); // 1
Usa o índice para acessar elementos do array.
Variáveis com var, let e const
var a = 10; let b = 20; const c = 30;
var: escopo global/função, let: escopo de bloco, const: constante que não muda.
Concatenação de strings
let a = "Hello"; let b = "World"; let c = a + " " + b;
Une strings usando +.
Operadores lógicos
&& (E), || (OU), ! (NÃO)
Usados para combinar condições.
Loops While
let i = 0; while(i<5){ console.log(i); i++; }Executa enquanto a condição for verdadeira.
Arrow Functions
const soma = (a,b) => a+b;
Sintaxe curta e this léxico.
Adicionar/remover elementos
arr.push(5); arr.pop(); arr.shift(); arr.unshift(0);
Adicionar ou remover elementos do início ou fim do array.
Tipos primitivos
String, Number, Boolean, null, undefined, Symbol
Tipos básicos do JavaScript.
Template strings
let name = "Ana"; console.log(`Olá ${name}`);Interpolação de variáveis em strings usando ``.
If / Else
if (x > 10) { ... } else { ... }Estrutura condicional básica.
Loops For...of
for(let item of arr){ console.log(item); }Percorre arrays facilmente.
Objetos literais
const obj = {name: "Ana", age: 30};Criação simples de objetos com propriedades.
Propriedades de objeto
console.log(obj.name); obj.age = 31;
Como ler e modificar propriedades de um objeto.
Números & Datas
Número básico
let num = 42;
Declara um número simples.
Math.ceil
Math.ceil(0.8); // 1
Arredonda para cima.
Incremento e decremento
let a = 1; a++; a--;
Aumenta ou diminui o valor em 1.
Data atual
const hoje = new Date();
Cria objeto Date com data e hora atuais.
Timestamp
Date.now(); data.getTime();
Obtém o número de milissegundos desde 01/01/1970.
Converter string para data
const d = new Date("2025-09-28T12:00:00");Cria objeto Date a partir de string ISO.
Número decimal
let pi = 3.1415;
Números com casas decimais.
Math.random
Math.random(); // 0 ≤ x < 1
Gera um número aleatório entre 0 e 1.
Operadores aritméticos
+, -, *, /, %
Adição, subtração, multiplicação, divisão e resto da divisão.
Criar data específica
const data = new Date(2025, 8, 28);
Mês é 0-indexado (0 = Janeiro).
Comparar datas
data1 < data2
Datas podem ser comparadas diretamente (timestamp implícito).
Obter dia da semana
data.getDay(); // 0 = Domingo, 6 = Sábado
Obtém o dia da semana como número.
Math.round
Math.round(0.8); // 1
Arredonda para o inteiro mais próximo.
Número aleatório em intervalo
Math.floor(Math.random() * (100 - 10 + 1)) + 10;
Gera um número inteiro aleatório entre 10 e 100.
Conversão para número
Number("123"); parseInt("123"); parseFloat("123.45");Converte strings em números inteiros ou decimais.
Extrair dia, mês, ano
data.getDate(); data.getMonth(); data.getFullYear();
Obtém dia, mês e ano da data.
Adicionar dias a uma data
let novaData = new Date(data); novaData.setDate(novaData.getDate() + 5);
Cria nova data adicionando dias.
Obter timestamp de UTC
data.getTime() + data.getTimezoneOffset() * 60000;
Converte hora local em UTC em milissegundos.
Math.floor
Math.floor(0.8); // 0
Arredonda para baixo.
Math.min / Math.max
Math.min(1,5,10); Math.max(1,5,10);
Encontra o menor ou maior valor.
Conversão para string
String(123); (123).toString();
Transforma números em texto.
Extrair horas, minutos, segundos
data.getHours(); data.getMinutes(); data.getSeconds();
Obtém componentes de tempo.
Formatação simples
data.toDateString(); data.toTimeString(); data.toISOString();
Mostra a data em diferentes formatos legíveis.
Controlo de Fluxo
If
if (x > 10) { console.log("Maior que 10"); }Executa o bloco se a condição for verdadeira.
For
for(let i = 0; i < 5; i++){ console.log(i); }Executa um bloco um número conhecido de vezes.
For...in
for(let key in obj){ console.log(key, obj[key]); }Percorre as propriedades enumeráveis de um objeto.
Operadores lógicos
x > 5 && x < 10
Usa && (E), || (OU), ! (NÃO) para combinar condições.
Else
if (x > 10) { ... } else { console.log("10 ou menor"); }Executa o bloco alternativo se a condição do if for falsa.
While
let i = 0; while(i < 5){ console.log(i); i++; }Executa enquanto a condição for verdadeira.
Break
for(let i=0;i<10;i++){ if(i===5) break; }Interrompe imediatamente o loop.
Short-circuit
let result = value || "default";
Se value for falsy, usa o valor default.
Elseif
if (x > 10) { ... } else if (x > 5) { ... } else { ... }Permite testar várias condições em sequência.
Do...While
let i = 0; do { console.log(i); i++; } while(i < 5);Executa pelo menos uma vez antes de verificar a condição.
Continue
for(let i=0;i<5;i++){ if(i===2) continue; console.log(i); }Pula a iteração atual e continua com a próxima.
Switch
switch(day) { case 1: ... break; default: ... }Escolha entre múltiplas opções com base em um valor.
For...of
for(let item of arr){ console.log(item); }Percorre valores de arrays ou iteráveis.
Operador ternário
const status = x > 10 ? "big" : "small";
Forma curta de if/else para atribuição de valores.
Coleções
Array básico
const arr = [1,2,3,4];
Cria um array simples de valores indexados.
Adicionar no início (unshift)
arr.unshift(0);
Adiciona elemento no início do array.
Filter
const filtered = arr.filter(x => x > 2);
Filtra elementos com base em condição.
Find
arr.find(x => x > 2);
Retorna o primeiro elemento que satisfaz a condição.
Slice
const part = arr.slice(1,3);
Extrai uma parte do array sem modificar o original.
Acessar elemento
console.log(arr[0]);
Usa índice para acessar elementos.
Remover do início (shift)
arr.shift();
Remove o primeiro elemento do array.
Reduce
const sum = arr.reduce((acc, x) => acc + x, 0);
Reduz array a um único valor acumulando resultados.
FindIndex
arr.findIndex(x => x > 2);
Retorna o índice do primeiro elemento que satisfaz a condição.
Splice
arr.splice(1,2,9,10);
Remove e/ou adiciona elementos no array.
Adicionar elemento (push)
arr.push(5);
Adiciona elemento no final do array.
Iterar com forEach
arr.forEach(item => console.log(item));
Executa função para cada elemento do array.
Some
arr.some(x => x > 3);
Retorna true se pelo menos um elemento satisfizer a condição.
Includes
arr.includes(3);
Verifica se um valor existe no array.
Remover elemento (pop)
arr.pop();
Remove o último elemento do array.
Map
const newArr = arr.map(x => x * 2);
Cria novo array transformando os elementos.
Every
arr.every(x => x > 0);
Retorna true se todos os elementos satisfizerem a condição.
Concat
const arr2 = arr.concat([5,6]);
Concatena dois arrays em um novo.
Funções & Objetos
Função tradicional
function soma(a, b){ return a + b; }Forma clássica de declarar funções.
Função retornando objeto
function createUser(name){ return {name: name}; }Função pode retornar objetos.
Remover propriedade
delete obj.age;
Remove propriedade do objeto.
this em arrow function
const obj = {name:"Ana", show:()=>{ console.log(this.name); }}Arrow functions não têm seu próprio this; ele é léxico.
Destruturação com alias
const {name: firstName} = obj;Extrai propriedade com nome diferente.
Rest operator
const [first, ...rest] = arr;
Captura o resto dos elementos em um array.
IIFE (Immediately Invoked Function Expression)
(function(){ console.log("executada imediatamente"); })();Função que se autoexecuta ao ser definida.
Arrow Function
const soma = (a, b) => a + b;
Sintaxe curta para funções; o this é léxico.
Objeto literal
const obj = {name: "Ana", age: 30};Criação simples de objeto com propriedades.
Métodos de objeto
const obj = {greet: function(){ console.log("Olá"); }};Funções atribuídas como propriedades são chamadas de métodos.
Object.keys / Object.values
Object.keys(obj); Object.values(obj);
Obtém arrays de chaves ou valores do objeto.
Destruturação de array
const [a,b] = [1,2];
Extrai valores de arrays em variáveis.
Função com rest parameters
function sum(...nums){ return nums.reduce((a,b)=>a+b,0); }Permite receber número variável de argumentos.
Encadeamento de métodos
arr.filter(x=>x>0).map(x=>x*2).reduce((a,b)=>a+b,0);
Combina várias operações de array de forma concisa.
Função sem parâmetros
function hello(){ console.log("Hello"); }Função que não recebe argumentos.
Acessar propriedades
console.log(obj.name); console.log(obj["age"]);
Duas formas de acessar valores de um objeto.
Shorthand de métodos
const obj = {greet(){ console.log("Olá"); }};Forma curta de declarar métodos.
Object.entries
Object.entries(obj);
Retorna array de pares [chave, valor].
Spread operator em objetos
const obj2 = {...obj, city:"Lisboa"};Cria novo objeto copiando propriedades e adicionando/alterando algumas.
Função recursiva
function fatorial(n){ return n <= 1 ? 1 : n * fatorial(n-1); }Função que chama a si mesma.
Objeto com função e propriedades
const user = {name:"Ana", age:30, greet(){ console.log(`Olá ${this.name}`); }};Objeto completo com dados e comportamento.
Função com parâmetros padrão
function greet(name="Visitante"){ console.log(`Olá ${name}`); }Define valores padrão caso nenhum argumento seja passado.
Adicionar propriedade
obj.city = "Lisboa";
Adiciona uma nova propriedade ao objeto.
this em função tradicional
const obj = {name:"Ana", show:function(){ console.log(this.name); }}Em funções tradicionais, this refere-se ao objeto chamador.
Destruturação de objeto
const {name, age} = obj;Extrai propriedades diretamente em variáveis.
Spread operator em arrays
const arr2 = [...arr, 4,5];
Cria novo array copiando elementos existentes.
Função anônima
const f = function(){ console.log("anônima"); };Função sem nome atribuída a uma variável.
Base de Dados & Segurança
Fetch API
fetch("/api/data").then(res => res.json()).then(data => console.log(data));Faz requisição HTTP e manipula JSON.
JSON.parse / JSON.stringify
JSON.parse(str); JSON.stringify(obj);
Converte entre objetos e strings JSON.
Escape de caracteres
const str = "Ele disse: \"Olá\"";
Usa \ para escapar caracteres especiais.
CSRF Tokens
Inclua tokens únicos em formulários para prevenir CSRF.
Evita requisições maliciosas de outros sites.
HTTP Headers de segurança
Content-Security-Policy, X-Content-Type-Options, X-Frame-Options
Reduz ataques comuns via browser.
HTTPS e HSTS
HSTS força o browser a usar HTTPS
Evita downgrade attacks.
Armazenamento mínimo
Guarde apenas o necessário de cada usuário.
Reduz risco em caso de breach.
Async/Await
const data = await fetch("/api/data").then(res => res.json());Escreve código assíncrono de forma sequencial.
Evitar XSS
element.textContent = userInput;
Não insira HTML de usuários diretamente com innerHTML.
Password hashing (server)
Use bcrypt ou argon2 para senhas.
Nunca guarde senhas em texto simples.
SameSite Cookies
Set-Cookie: key=value; SameSite=Strict
Protege cookies de serem enviados em requests cross-site.
Evitar eval()
Não use eval() em inputs de usuários.
Execução de código arbitrário é perigosa.
Evitar leaks em console.log
Não logue dados sensíveis em produção
Evita exposição de informações críticas.
Evitar client-side security
Segurança deve ser sempre server-side, JS só auxilia na UX.
Evita falsas sensações de proteção.
LocalStorage
localStorage.setItem("key","value"); localStorage.getItem("key");Armazena dados persistentes no browser.
Evitar SQL Injection (server-side)
Use prepared statements ao enviar dados ao servidor.
Nunca concatene strings diretamente em queries SQL.
HTTPS obrigatório
Use sempre conexões seguras (https) para dados sensíveis.
Evita interceptação de dados em redes públicas.
Input sanitization
Remova caracteres perigosos antes de enviar para o servidor.
Evita XSS e injections.
Armazenamento seguro de tokens
Use HttpOnly e Secure cookies para JWTs
Evita acesso via JavaScript.
Validação de e-mail
/^[^\s@]+@[^\s@]+\.[^\s@]+$/
Regex simples para validar e-mails.
SessionStorage
sessionStorage.setItem("key","value");Armazena dados que duram apenas a sessão do browser.
Validar inputs
if(/^\d+$/.test(input)){ ... }Valida dados do usuário usando regex antes de processar.
CORS
Access-Control-Allow-Origin: https://meusite.com
Controla quais origens podem acessar a API.
Output encoding
Encode HTML antes de exibir no browser
Evita execução de scripts maliciosos.
Limitar tentativas de login
Implemente lockout ou rate limiting
Previne brute force attacks.
Validação de telefone
/^\+?\d{9,15}$/Regex para validar números internacionais.
Truques
Template strings
const name = "Ana"; console.log(`Olá ${name}`);Permite interpolação de variáveis dentro de strings.
Nullish coalescing (??)
const value = input ?? "default";
Usa "default" apenas se input for null ou undefined.
Negação lógica
!true // false
Inverte valor booleano.
Match regex
"abcde".match(/abc/);
Retorna array com correspondências ou null.
Quantificadores
a{2} a{2,4} a{2,}Indica quantas vezes o padrão deve repetir.
Boolean conversion
!!value
Converte qualquer valor em boolean true/false.
Clonar objeto
const clone = {...obj};Copia objeto sem referência ao original.
Multilinha com template string
const text = `linha1\nlinha2`;
Strings multilinha usando backticks (`).
Optional chaining (?.)
const name = user?.profile?.name;
Evita erros se algum nível do objeto for undefined/null.
Regex básico
/abc/
Cria expressão regular simples para buscar padrão "abc".
Replace com regex
"abcde".replace(/abc/, "XYZ");
Substitui padrão encontrado por outro texto.
Âncoras
^abc $abc
^ → início da string, $ → fim da string.
Destruturação rápida
const [a,b] = arr; const {name,age} = obj;Extrai valores de arrays e objetos facilmente.
Falsy values
false, 0, "", null, undefined, NaN
Valores que são considerados falsy em condições.
Short-circuit OR
const value = input || "default";
Se input for falsy, usa "default".
Operador ternário
const status = x > 10 ? "big" : "small";
Escolha rápida entre dois valores.
Regex com flags
/abc/i
Flag "i" torna regex case-insensitive.
Caracteres especiais em regex
\. \d \w \s
\. → ponto literal, \d → dígito, \w → letra/número, \s → espaço.
Escape de caracteres
const str = "Ele disse: \"Olá\"";
Usa \ para escapar caracteres especiais.
Swap de variáveis
[a,b] = [b,a];
Troca valores sem variável temporária.
Truthy values
true, {}, [], 1, "text"Valores que são considerados truthy em condições.
Short-circuit AND
input && console.log(input);
Executa ação apenas se input for truthy.
Incremento/decremento inline
let x = 0; x++; ++x; x--; --x;
Aumenta ou diminui o valor em 1.
Testar regex
/abc/.test("abcde"); // trueVerifica se string casa com regex.
Negação de caracteres
[^a-z]
Qualquer caractere que não seja de "a" a "z".
Conversão rápida de tipo
+str // string para número
Usa operador + para converter string em número.
Clonar array
const clone = [...arr];
Copia array sem referência ao original.
Sem Categoria
Arrays e Objetos
Estruturas de dados fundamentais em JavaScript.
// Arrays
let frutas = ["maçã", "banana", "laranja"];
let numeros = new Array(1, 2, 3, 4, 5);
// Acessar elementos
console.log(frutas[0]); // "maçã"
console.log(frutas.length); // 3
// Adicionar/remover elementos
frutas.push("uva"); // Adiciona no final
frutas.unshift("manga"); // Adiciona no início
let ultimo = frutas.pop(); // Remove do final
let primeiro = frutas.shift(); // Remove do início
// Métodos úteis
frutas.includes("banana"); // Verificar se existe
frutas.indexOf("laranja"); // Encontrar índice
// Objetos
let pessoa = {
nome: "João",
idade: 30,
cidade: "Lisboa",
falar: function() {
return `Olá, eu sou ${this.nome}`;
}
};
// Acessar propriedades
console.log(pessoa.nome); // "João"
console.log(pessoa["idade"]); // 30
console.log(pessoa.falar()); // "Olá, eu sou João"
// Adicionar/modificar propriedades
pessoa.email = "joao@email.com";
pessoa.idade = 31;
// Verificar propriedades
console.log("nome" in pessoa); // true
console.log(pessoa.hasOwnProperty("nome")); // true
Métodos de array importantes:
- push/pop: Adicionar/remover do final
- unshift/shift: Adicionar/remover do início
- includes: Verificar se contém elemento
- map/filter/reduce: Transformar arrays
Sintaxe Básica
Fundamentos do JavaScript para começar a programar.
// Comentários
// Comentário de linha
/* Comentário de bloco */
// Variáveis
var nome = "João"; // Function scope
let idade = 25; // Block scope
const PI = 3.14159; // Constante
// Tipos de dados
let texto = "string";
let numero = 42;
let decimal = 3.14;
let booleano = true;
let nulo = null;
let indefinido = undefined;
// Saída
console.log("Olá mundo");
console.error("Erro!");
console.warn("Aviso!");
// Alert (no browser)
alert("Mensagem");
Diferenças entre var, let, const:
- var: Escopo de função, pode ser redeclarada
- let: Escopo de bloco, pode ser reatribuída
- const: Escopo de bloco, não pode ser reatribuída