JavaScript Documentation
Concise, example-driven JavaScript reference. Read the concept, see the code, then practice it in a Coddy journey.
Start a guided JavaScript journeyPrimeiros passos
- O que é JavaScriptEntenda o que é JavaScript, onde ele roda, para que serve e as diferenças em relação a Java e TypeScript — uma introdução direta para quem está começando.
- Executar JSAs formas práticas de rodar JavaScript em 2026 — o console do navegador, a tag script no HTML, o Node.js pelo terminal e quando usar cada uma.
- Sintaxe e ; (ASI)Entenda como funciona a sintaxe do JavaScript — instruções, blocos e expressões — e descubra a real sobre ponto e vírgula, inserção automática (ASI) e quando isso vira dor de cabeça.
- Strict ModeEntenda o que o strict mode do JavaScript muda no seu código, como ativá-lo e por que módulos ES e classes já vêm com ele ligado por padrão.
- ComentáriosComo funcionam os comentários em JavaScript: `//` para uma linha, `/* */` para blocos e os hábitos que transformam comentário em documentação útil em vez de ruído.
Variáveis e tipos
- let, const e varAs três formas de declarar variáveis no JavaScript — e por que o código moderno usa `const` por padrão, `let` só quando precisa e `var` praticamente nunca.
- Tipos PrimitivosConheça os sete tipos primitivos do JavaScript — string, number, bigint, boolean, null, undefined e symbol — e entenda o que separa eles dos objetos.
- Strings e TemplatesEntenda de vez como as strings funcionam no JavaScript: aspas, crases, interpolação, texto em múltiplas linhas e os métodos que você vai usar no dia a dia.
- Números e BigIntComo o tipo Number do JavaScript realmente funciona — precisão de ponto flutuante, MAX_SAFE_INTEGER e quando usar BigInt no lugar.
- null vs undefinedEntenda de uma vez a diferença entre null e undefined no JavaScript, como verificar os dois de forma segura e qual deles usar no seu código.
- Coerção de TiposEntenda como o JavaScript converte valores entre tipos: as regras de coerção implícita que pegam todo mundo de surpresa, as conversões explícitas que você deveria preferir e quando cada uma entra em ação.
- Operadores de IgualdadeEntenda como funciona a comparação de igualdade em JavaScript: diferença entre == e ===, as peculiaridades do NaN, comparação de objetos e quando usar Object.is.
Fluxo de controle
- OperadoresConheça os operadores do JavaScript para fazer contas, comparar valores, combinar booleanos e atribuir variáveis — com as pegadinhas que realmente aparecem no dia a dia.
- if / elseEntenda como funciona o if/else em JavaScript: como escrever condições, encadear else if, lidar com valores truthy/falsy e quando trocar tudo por um ternário.
- SwitchEntenda como funciona o switch em JavaScript: case, break, default, fallthrough e quando ele é melhor que uma sequência de if/else.
- Laço forEntenda como funciona o laço `for` clássico em JavaScript: o cabeçalho de três partes, iteração em arrays, break, continue, loops aninhados e os erros mais comuns.
- Loop whileEntenda como os loops `while` e `do...while` funcionam no JavaScript, quando usá-los no lugar do `for` e como escapar dos temidos loops infinitos.
- for...of e for...inEntenda de vez a diferença entre for...of e for...in no JavaScript: valores x chaves, arrays x objetos e quando usar cada um.
- Truthy e FalsyEntenda o que é truthy e falsy em JavaScript, veja a lista completa de valores falsy e descubra como a coerção booleana se comporta no código do dia a dia.
Iteração
- Iterators e GeneratorsEntenda como funciona o protocolo de iteração do JavaScript, como tornar seus próprios objetos iteráveis e como as generator functions deixam tudo isso muito mais simples.
- SymbolsEntenda o que são symbols em JavaScript, por que eles existem e como usar well-known symbols como Symbol.iterator para deixar seus objetos iteráveis.
Funções
- Function DeclarationAprenda a declarar funções em JavaScript: palavra-chave function, parâmetros, return, hoisting e quando usar declaração ou expressão de função.
- Arrow FunctionsEntenda como funcionam as arrow functions no JavaScript: a sintaxe `=>`, o return implícito, o comportamento do `this` e quando vale mais a pena usar uma `function` tradicional.
- Parâmetros PadrãoEntenda como funcionam os parâmetros em JavaScript: valores padrão, o papel do undefined, ordem de avaliação e a diferença entre parâmetros e argumentos.
- Spread e RestEntenda como o operador ... funciona em JavaScript: use rest para juntar argumentos em um array e spread para expandir arrays e objetos. Veja quando usar cada um.
- ClosuresClosure é a função que lembra das variáveis ao seu redor. Veja como closures funcionam em JavaScript, com exemplos práticos e casos de uso reais.
- Palavra-chave thisEntenda como o `this` realmente funciona em JavaScript: as quatro regras de binding, por que arrow functions são diferentes e como escapar do clássico erro 'this is undefined'.
- Higher-Order FunctionsEntenda o que são higher-order functions em JavaScript: como passar funções como argumento, retornar funções de outras funções e usar map, filter e reduce no dia a dia.
Objetos e arrays
- ObjetosEntenda como os objetos funcionam em JavaScript: como criar, ler e alterar propriedades, adicionar métodos e escrever código que continua legível com o tempo.
- ArraysEntenda como funcionam os arrays em JavaScript: criação, índices, length, push e pop, slice vs splice e os loops mais limpos para percorrer.
- DestructuringEntenda como funciona o destructuring em JavaScript: extrair valores de objetos e arrays, renomear variáveis, usar valores padrão, rest e parâmetros de função.
- Spread de ObjetosComo o spread de objetos funciona no JavaScript — clonar, mesclar, sobrescrever propriedades e a pegadinha da cópia rasa que pega quase todo mundo.
- Métodos de ArrayOs métodos de array que substituem a maioria dos seus loops for — map, filter, reduce, find, some e every — e quais deles alteram o array original ou devolvem um novo.
- Map e SetEntenda como Map e Set funcionam no JavaScript, as diferenças em relação a objetos e arrays comuns, e quando realmente vale a pena usá-los.
- JSONAprenda a converter objetos JavaScript em JSON e vice-versa usando JSON.stringify e JSON.parse, com os parâmetros replacer e reviver e os valores que se perdem no caminho.
- Optional ChainingEntenda como o operador `?.` permite acessar propriedades aninhadas, arrays e métodos sem quebrar a aplicação quando o valor é `null` ou `undefined`.
- Nullish CoalescingEntenda como o operador `??` devolve um valor padrão apenas quando o valor é `null` ou `undefined` — e por que ele resolve melhor que o `||` na maioria dos casos reais.
Classes e protótipos
- ClassesEntenda como as classes em JavaScript funcionam na prática: construtor, métodos, campos de instância, getters e setters, e o modelo mental por trás do `class`.
- HerançaComo funciona a herança em classes JavaScript: extends, super, sobrescrita de métodos e quando herança não é a melhor escolha.
- Métodos EstáticosEntenda como funcionam os métodos e propriedades estáticas em classes JavaScript: quando usar, como o `this` se comporta e o padrão factory que eles permitem.
- Private FieldsEntenda como o prefixo `#` torna campos e métodos de classe realmente privados em JavaScript — a sintaxe, as regras e por que a convenção do underscore não resolve.
- PrototypesEntenda de vez o que são prototypes no JavaScript, como funciona a cadeia de protótipos na busca por propriedades e como a sintaxe `class` se apoia nesse mesmo mecanismo.
JavaScript assíncrono
- Event LoopO modelo mental por trás do JavaScript assíncrono: call stack, task queue, microtask queue e como o event loop conecta tudo isso.
- CallbacksEntenda como funcionam os callbacks em JavaScript: passar funções como argumento, o padrão error-first e por que o callback hell levou o pessoal a adotar Promises.
- PromisesEntenda como funcionam as Promises em JavaScript: os três estados, encadeamento com then e catch, execução paralela com Promise.all e como criar a sua com new Promise.
- async/awaitComo async/await funciona de verdade em JavaScript: funções assíncronas, await em promises, tratamento de erros com try/catch e execução paralela.
- Fetch APIAprenda a usar a Fetch API do JavaScript na prática: requisições GET e POST, parse de JSON, tratamento de erros e como cancelar requisições com AbortController.
- Erros em AsyncEntenda como os erros realmente se propagam em código assíncrono: try/catch com async/await, .catch em promises e as armadilhas que engolem falhas em silêncio.
Módulos e ferramentas
- Módulos ESEntenda como funcionam os módulos ES no JavaScript: exports nomeados e default, sintaxe do import, import() dinâmico e o que diferencia módulos de scripts comuns.
- CommonJS vs ESMOs dois sistemas de módulos do JavaScript, por que ambos ainda existem e como decidir entre require e import nos seus projetos Node.
- npm na PráticaComo o npm funciona de verdade: instalar pacotes, rodar npm init, lidar com dev dependencies, atualizar tudo e entender o node_modules e o lockfile.
- package.jsonEntenda o que vai dentro do package.json: os campos que importam, como os scripts funcionam e como o semver decide quais versões o npm instala.
- Node RuntimeEntenda o que é o runtime do Node.js, como ele difere do navegador e quais APIs centrais — globals, módulos, process e fs — tornam o JavaScript no servidor possível.
Erros e depuração
- try/catchComo try/catch/finally funciona no JavaScript — capturando erros, o objeto de erro, rethrow e quando try/catch não é a ferramenta certa.
- Tipos de ErroConheça os tipos de erro nativos do JavaScript: o que cada um significa, quando aparece e como ler a mensagem sem ficar no chute.
- Console e DevToolsOs métodos do console e recursos do DevTools que deixam o debug de JavaScript muito mais rápido do que espalhar console.log pelo código.
Trabalhando com dados reais
- RegexComo as expressões regulares funcionam em JavaScript: como criar padrões, os métodos principais (test, match, replace), as flags e os grupos de captura com exemplos práticos.
- Datas e HorasComo o objeto Date do JavaScript funciona de verdade: criar datas, formatar, fazer contas, lidar com fuso horário e as pegadinhas que derrubam todo mundo.
- URL e Query StringComo ler, montar e modificar URLs em JavaScript usando as APIs `URL` e `URLSearchParams` — sem regex e sem dor de cabeça com encoding.