Menu
Coddy logo textTech

Folha de Consulta JavaScript

Última atualização

Variáveis (let, const, var)

Declare valores; prefira const, depois let, e evite var.

OperaçãoSintaxe
Escopo de bloco, pode reatribuirlet count = 0;
Escopo de bloco, não pode reatribuirconst name = "Ada";
Escopo de função (legado)var x = 1;
Declarar sem valorlet result;
Várias declaraçõeslet a = 1, b = 2;
Objeto constante (conteúdo mutável)const user = {}; user.id = 1;

Tipos de dados

Os tipos primitivos e de referência, além de como verificá-los.

TipoExemplo
Numberlet n = 42;
Stringlet s = "hi";
Booleanlet ok = true;
Arraylet arr = [1, 2, 3];
Objectlet obj = { id: 1 };
Null / undefinedlet a = null;, let b;
Verificar um tipotypeof n
ConverterNumber("7"), String(42), Boolean(0)

Strings e template literals

Construir e manipular texto.

OperaçãoSintaxe
Template literalHi ${name}, age ${age} (envolva em backticks)
Comprimentotext.length
Maiúsculas / minúsculastext.toUpperCase(), text.toLowerCase()
Remover espaços em brancotext.trim()
Substituir tudotext.replaceAll("a", "b")
Dividir em um arraytext.split(",")
Incluitext.includes("js")
Fatiartext.slice(0, 3)

Arrays e métodos de array

Coleções ordenadas e os métodos que as percorrem.

OperaçãoSintaxe
Adicionar / remover no finalarr.push(4), arr.pop()
Adicionar / remover no inícioarr.unshift(0), arr.shift()
Transformar cada itemarr.map(x => x * 2)
Manter itens correspondentesarr.filter(x => x > 0)
Reduzir a um único valorarr.reduce((sum, x) => sum + x, 0)
Encontrar um itemarr.find(x => x.id === 1)
Testar some / everyarr.some(f), arr.every(f)
Índice de um valorarr.indexOf(3), arr.includes(3)
Juntar em uma stringarr.join(", ")

Objetos

Coleções de chave-valor.

OperaçãoSintaxe
Criarconst user = { id: 1, name: "Ada" };
Acessar uma propriedadeuser.name, user["name"]
Adicionar / atualizar uma propriedadeuser.age = 25;
Excluir uma propriedadedelete user.age;
Obter todas as chaves / valoresObject.keys(user), Object.values(user)
Obter entradasObject.entries(user)
Mesclar objetosObject.assign({}, a, b)
Cópia rasaconst copy = { ...user };

Controle de fluxo

Condicionais e laços.

OperaçãoSintaxe
If / else if / elseif (x > 0) { … } else { … }
Ternárioconst y = x > 0 ? 1 : 0;
Switchswitch (x) { case 1: … break; }
Laço forfor (let i = 0; i < 5; i++) { … }
For-of (valores)for (const item of arr) { … }
For-in (chaves)for (const key in obj) { … }
Laço whilewhile (x < 10) { … }

Funções e arrow functions

Definir blocos reutilizáveis e chamáveis.

OperaçãoSintaxe
Declaração de funçãofunction add(a, b) { return a + b; }
Arrow functionconst add = (a, b) => a + b;
Arrow com um único argumentoconst sq = x => x * x;
Arrow sem argumentosconst now = () => Date.now();
Parâmetro padrãofunction f(x = 0) { … }
Parâmetros restfunction f(...args) { … }
Invocada imediatamente (IIFE)(() => { … })();

Desestruturação e spread

Desempacote valores e copie/mescle estruturas.

OperaçãoSintaxe
Desestruturação de arrayconst [a, b] = arr;
Desestruturação de objetoconst { id, name } = user;
Renomear ao desempacotarconst { id: userId } = user;
Valor padrãoconst { age = 0 } = user;
Spread de um arrayconst all = [...a, ...b];
Spread de um objetoconst next = { ...user, age: 25 };
Rest na desestruturaçãoconst [first, ...rest] = arr;

Promises e async/await

Lide com trabalho assíncrono, como requisições de rede.

OperaçãoSintaxe
Função asyncasync function load() { … }
Await em uma promiseconst data = await fetch(url);
Then / catchpromise.then(res => …).catch(err => …)
Try / catch com awaittry { await f(); } catch (e) { … }
Resolve / rejectPromise.resolve(1), Promise.reject(err)
Aguardar todasawait Promise.all([a, b])
Primeira a concluirawait Promise.race([a, b])

A sintaxe moderna de JavaScript que você mais usa, em uma única página. Esta folha de consulta JavaScript é uma referência rápida para o dia a dia com ES6+ - declarar variáveis, métodos de string e de array, objetos, arrow functions, desestruturação e async/await.

Tudo aqui é JavaScript padrão que roda em navegadores modernos e no Node.js. Copie o que precisar ou teste qualquer trecho ao vivo no playground de JS - sem nada para instalar.

Perguntas frequentes sobre a folha de consulta JavaScript

Esta folha de consulta JavaScript é gratuita?
Sim. Esta folha de consulta JavaScript é totalmente gratuita, sem necessidade de cadastro. Salve nos favoritos e volte sempre que precisar consultar uma sintaxe, um método de array ou um padrão assíncrono.
Qual é a diferença entre == e === em JavaScript?
== é a igualdade frouxa: converte os operandos para o mesmo tipo antes de comparar, então 0 == "0" é true. === é a igualdade estrita: compara tanto o valor quanto o tipo sem conversão, então 0 === "0" é false. Prefira === (e !==) em quase todos os casos - é previsível e evita coerções surpreendentes.
Qual é a diferença entre let, const e var?
const e let têm escopo de bloco e foram adicionados no ES6; var tem escopo de função e é mais antigo. Use const para valores que você nunca reatribui, let para os que reatribui, e evite var para prevenir bugs de hoisting e escopo. Note que um objeto ou array const ainda pode ter seu conteúdo alterado - apenas a vinculação é constante.
Posso praticar JavaScript online?
Sim. Abra o playground de JS para executar qualquer trecho desta folha de consulta no seu navegador - sem nada para instalar. Quando quiser estrutura, o curso interativo e gratuito de JavaScript da Coddy leva você passo a passo de variáveis e laços a métodos de array e async/await.
Esta folha de consulta é boa para iniciantes?
Sim. Ela está organizada do básico (variáveis, tipos de dados, strings) até desestruturação e async/await, de modo que você pode usar as seções de cima já no primeiro dia e ir avançando para os recursos modernos do ES6+.
Coddy programming languages illustration

Aprenda JavaScript com a Coddy

COMEÇAR