Cheatsheet

← Voltar para página principal
JavaScript Cheatsheet

Guia completo de JavaScript ES6+ para desenvolvimento moderno

🤔 O que é JavaScript?

📖 Definição

JavaScript é uma linguagem de programação de alto nível, interpretada e multi-paradigma. É a linguagem padrão da web, executada em navegadores e também em servidores (Node.js).

💪 Por que aprender?

• Essencial para desenvolvimento web
• Frontend e Backend com Node.js
• Ecossistema mais ativo do mundo
• Mobile com React Native
• Desktop com Electron

🚀 O que você pode fazer?

• Aplicações web interativas
• APIs e servidores REST
• Aplicações mobile e desktop
• Automação e scripts
• Machine Learning com TensorFlow.js

💡 Onde você vai usar:
🌐 Web
React, Vue, Angular
Backend
Node.js, Express
📱 Mobile
React Native
🤖 Modern
TypeScript, ES6+
Filtro ativo:Todos
Total: 9 categoriasBásico: 3Intermediário: 5Avançado: 1

🔤 Variáveis e Tipos

Use quando: Declarando variáveis, trabalhando com dados ou convertendo tipos

📋Declaração de Variáveis

Básico
const nome = "João"

# Constante (não pode reatribuir)

Básico
let idade = 25

# Variável (pode reatribuir)

Básico
var antigo = "evitar"

# Escopo de função (evitar)

📋Tipos Primitivos

Básico
typeof "texto"

# string

Básico
typeof 42

# number

Básico
typeof true

# boolean

Básico
typeof null

# object (bug histórico)

Básico
typeof undefined

# undefined

Básico
typeof Symbol()

# symbol

Básico
typeof 42n

# bigint

📋Conversão de Tipos

Básico
Number("123")

# Para número

Básico
String(123)

# Para string

Básico
Boolean(1)

# Para boolean

Básico
parseInt("42px")

# Extrai número

Básico
parseFloat("3.14")

# Decimal

📋 Arrays e Métodos

Use quando: Trabalhando com listas de dados, processamento de arrays

📋Criar Arrays

Básico
const arr = [1, 2, 3]

# Literal

Básico
const arr = new Array(1, 2, 3)

# Construtor

Básico
const arr = Array.of(1, 2, 3)

# Método estático

Básico
const arr = Array(5).fill(0)

# Array com valores

📋Métodos Essenciais

Básico
arr.push(4)

# Adiciona no fim

Básico
arr.pop()

# Remove do fim

Básico
arr.unshift(0)

# Adiciona no início

Básico
arr.shift()

# Remove do início

Básico
arr.slice(1, 3)

# Fatia (não modifica)

Básico
arr.splice(1, 2)

# Remove/insere (modifica)

📋Iteração Moderna

Básico
arr.forEach(item => console.log(item))

# Executa função

Básico
arr.map(item => item * 2)

# Transforma

Básico
arr.filter(item => item > 2)

# Filtra

Básico
arr.reduce((acc, item) => acc + item, 0)

# Reduz

Básico
arr.find(item => item > 2)

# Encontra primeiro

Básico
arr.findIndex(item => item > 2)

# Índice do primeiro

Básico
arr.some(item => item > 2)

# Algum satisfaz

Básico
arr.every(item => item > 0)

# Todos satisfazem

🏗️ Objetos e Propriedades

Use quando: Estruturando dados, modelos, configurações

📋Criar Objetos

Básico
const obj = { nome: "João", idade: 25 }

# Literal

Básico
const obj = new Object()

# Construtor

Básico
const obj = Object.create(null)

# Sem protótipo

📋Propriedades

Básico
obj.nome

# Notação ponto

Básico
obj["nome"]

# Notação colchete

Básico
obj.chaveDinamica

# Variável como chave

Básico
delete obj.idade

# Remove propriedade

📋Métodos Úteis

Básico
Object.keys(obj)

# Array de chaves

Básico
Object.values(obj)

# Array de valores

Básico
Object.entries(obj)

# Array de pares

Básico
Object.assign({}, obj1, obj2)

# Mescla objetos

Básico
{ ...obj1, ...obj2 }

# Spread operator

Básico
Object.freeze(obj)

# Congela objeto

Básico
Object.seal(obj)

# Sela objeto

📋Propriedades Avançadas

Básico
const obj = {
Básico
[chave]: "valor",

# Chave computada

Básico
metodo() { return "oi" },

# Método shorthand

Básico
get prop() { return this._prop },

# Getter

Básico
set prop(val) { this._prop = val }

# Setter

Básico
}

⚡ Funções Modernas

Use quando: Reutilizando código, programação funcional, callbacks

📋Declaração de Funções

Intermediário
function soma(a, b) { return a + b }

# Function declaration

Intermediário
const soma = function(a, b) { return a + b }

# Function expression

Intermediário
const soma = (a, b) => a + b

# Arrow function

Intermediário
const soma = (a, b) => ({ resultado: a + b })

# Return objeto

📋Parâmetros Avançados

Intermediário
function soma(...numeros) {

# Rest parameters

Intermediário
return numeros.reduce((a, b) => a + b, 0)
Intermediário
}
Intermediário
soma(1, 2, 3, 4)

# Chama com múltiplos

Intermediário
const nums = [1, 2, 3]
Intermediário
soma(...nums)

# Spread operator

📋Parâmetros Padrão

Intermediário
function saudar(nome = "Visitante") {
Intermediário
return `Olá, ${nome}!`
Intermediário
}
Intermediário
saudar()

# "Olá, Visitante!"

Intermediário
saudar("Maria")

# "Olá, Maria!"

📋Higher Order Functions

Intermediário
const multiplicar = fator => num => num * fator

# Currying

Intermediário
const dobrar = multiplicar(2)
Intermediário
dobrar(5)

# 10

Intermediário
const aplicar = (fn, valor) => fn(valor)

# Função de ordem superior

⏱️ Programação Assíncrona

Use quando: Requisições HTTP, operações I/O, timers, eventos

📋Promises

Intermediário
const promise = new Promise((resolve, reject) => {
Intermediário
setTimeout(() => resolve("Sucesso!"), 1000)
Intermediário
})
Intermediário
promise.then(result => console.log(result))

# Sucesso

Intermediário
promise.catch(error => console.error(error))

# Erro

Intermediário
promise.finally(() => console.log("Finalizado"))

# Sempre

📋Async/Await

Intermediário
async function buscarDados() {
Intermediário
try {
Intermediário
const response = await fetch('/api/dados')
Intermediário
const dados = await response.json()
Intermediário
return dados
Intermediário
} catch (error) {
Intermediário
console.error("Erro:", error)
Intermediário
}
Intermediário
}

📋Promise Utils

Intermediário
Promise.all([p1, p2, p3])

# Todas resolvem

Intermediário
Promise.race([p1, p2])

# Primeira que resolver

Intermediário
Promise.allSettled([p1, p2])

# Todas finalizam

Intermediário
Promise.any([p1, p2])

# Primeira sucesso

📋Fetch API

Intermediário
fetch('/api/users')
Intermediário
.then(res => res.json())
Intermediário
.then(data => console.log(data))
Intermediário
.catch(err => console.error(err))

🎯 Destructuring & Spread

Use quando: Extraindo valores de objetos/arrays, parâmetros de função

📋Array Destructuring

Intermediário
const [a, b, c] = [1, 2, 3]

# Básico

Intermediário
const [primeiro, ...resto] = [1, 2, 3, 4]

# Com rest

Intermediário
const [, , terceiro] = [1, 2, 3]

# Ignorando valores

Intermediário
const [x = 0] = []

# Valor padrão

📋Object Destructuring

Intermediário
const { nome, idade } = { nome: "João", idade: 25 }

# Básico

Intermediário
const { nome: userName, idade: age } = obj

# Renomeando

Intermediário
const { nome = "Anônimo" } = {}

# Valor padrão

Intermediário
const { nome, ...resto } = obj

# Rest operator

Intermediário
const { usuario: { nome } } = data

# Aninhado

📋Spread Operator

Intermediário
const arr1 = [1, 2]
Intermediário
const arr2 = [...arr1, 3, 4]

# Array spread

Intermediário
const obj1 = { a: 1, b: 2 }
Intermediário
const obj2 = { ...obj1, c: 3 }

# Object spread

Intermediário
const copia = { ...original }

# Shallow copy

Intermediário
const merged = { ...obj1, ...obj2 }

# Merge objetos

📋Parâmetros com Destructuring

Intermediário
function processar({ nome, idade }) {
Intermediário
console.log(`${nome} tem ${idade} anos`)
Intermediário
}
Intermediário
processar({ nome: "Maria", idade: 30 })

🚀 ES6+ Features

Use quando: Código moderno, organização, programação orientada a objetos

📋Template Literals

Intermediário
const nome = "João"
Intermediário
const mensagem = `Olá, ${nome}!`

# Interpolação

Intermediário
const multiline = `Linha 1
Intermediário
Linha 2
Intermediário
Linha 3`

# Multiline

📋Modules

Intermediário
// utils.js
Intermediário
export const soma = (a, b) => a + b

# Named export

Intermediário
export default function() {}

# Default export

Intermediário
// main.js
Intermediário
import { soma } from './utils.js'

# Named import

Intermediário
import utils from './utils.js'

# Default import

Intermediário
import * as utils from './utils.js'

# Namespace

📋Classes

Intermediário
class Pessoa {
Intermediário
constructor(nome) {
Intermediário
this.nome = nome
Intermediário
}
Intermediário
saudar() {
Intermediário
return `Olá, ${this.nome}!`
Intermediário
}
Intermediário
}
Intermediário
class Funcionario extends Pessoa {

# Herança

Intermediário
constructor(nome, cargo) {
Intermediário
super(nome)

# Chama construtor pai

Intermediário
this.cargo = cargo
Intermediário
}
Intermediário
}

📋Symbols e Iterators

Intermediário
const id = Symbol('id')

# Symbol único

Intermediário
const obj = { [id]: 123 }

# Propriedade symbol

Intermediário
obj[Symbol.iterator] = function*() {

# Iterator

Intermediário
yield 1; yield 2; yield 3
Intermediário
}
Intermediário
for (const val of obj) console.log(val)

# For...of

🌐 Manipulação DOM

Use quando: Interatividade web, formulários, SPAs, manipulação UI

📋Selecionar Elementos

Intermediário
document.getElementById('meu-id')

# Por ID

Intermediário
document.querySelector('.classe')

# Primeiro match

Intermediário
document.querySelectorAll('div')

# Todos matches

Intermediário
document.getElementsByClassName('classe')

# Por classe

Intermediário
document.getElementsByTagName('p')

# Por tag

📋Manipular Conteúdo

Intermediário
element.textContent = "Texto"

# Texto seguro

Intermediário
element.innerHTML = "<strong>HTML</strong>"

# Com HTML

Intermediário
element.value = "valor"

# Form inputs

Intermediário
element.getAttribute('data-id')

# Atributo

Intermediário
element.setAttribute('data-id', '123')

# Set atributo

📋Estilos e Classes

Intermediário
element.style.color = 'red'

# Estilo inline

Intermediário
element.classList.add('ativa')

# Adicionar classe

Intermediário
element.classList.remove('ativa')

# Remover classe

Intermediário
element.classList.toggle('ativa')

# Toggle classe

Intermediário
element.classList.contains('ativa')

# Verificar classe

📋Criar e Remover Elementos

Intermediário
const div = document.createElement('div')

# Criar

Intermediário
div.textContent = 'Novo elemento'
Intermediário
document.body.appendChild(div)

# Adicionar

Intermediário
element.remove()

# Remover elemento

Intermediário
parent.removeChild(child)

# Remover filho

📋Eventos

Intermediário
element.addEventListener('click', (e) => {

# Adicionar evento

Intermediário
console.log('Clicado!', e.target)
Intermediário
})
Intermediário
element.removeEventListener('click', handler)

# Remover evento

Intermediário
element.dispatchEvent(new Event('custom'))

# Disparar evento

🐛 Debugging & Ferramentas

Use quando: Desenvolvendo, testando, otimizando performance

💡 💡 Use console.table() para visualizar arrays de objetos de forma organizada. Use console.group() para organizar logs relacionados.

📋Console Methods

Avançado
console.log('mensagem')

# Log básico

Avançado
console.error('erro')

# Erro

Avançado
console.warn('aviso')

# Aviso

Avançado
console.info('info')

# Informação

Avançado
console.table([{a:1}, {a:2}])

# Tabela

Avançado
console.group('grupo')

# Agrupar logs

Avançado
console.groupEnd()

# Fechar grupo

Avançado
console.time('timer')

# Iniciar timer

Avançado
console.timeEnd('timer')

# Finalizar timer

📋Debugger Statement

Avançado
function debugar() {
Avançado
debugger

# Ponto de parada

Avançado
console.log('Continuando...')
Avançado
}

📋Performance

Avançado
console.time('loop')
Avançado
for (let i = 0; i < 1000000; i++) {}
Avançado
console.timeEnd('loop')

# Medir tempo

Avançado
performance.now()

# Timestamp preciso

Avançado
performance.mark('start')

# Marca

Avançado
performance.mark('end')
Avançado
performance.measure('diff', 'start', 'end')

# Medir

📋Memory & Profiling

Avançado
console.memory

# Info memória

Avançado
performance.getEntriesByType('navigation')

# Navigation timing

Avançado
window.getComputedStyle(element)

# Estilos calculados

🤝 Contribuindo

Encontrou um erro? Quer melhorar um cheatsheet? Tem uma sugestão? Adoraríamos suas contribuições! Abra uma issue ou submeta um PR.

Gostou do projeto? Apoie o desenvolvimento com um café e ajude a manter tudo open source ☕