javascriptintermediate128 snippets

JS Moderno (ES6+): O Essencial

Pare de escrever código legado. Domine Arrow Functions, Async/Await e Destructuring que todo dev sênior usa hoje.

Seções9
1

🔤 Variáveis e Tipos

15 snippets

Fundamentos da linguagem para declaração de armazenamento e verificação de tipos de dados.

Declaração de Constante

Declara uma constante imutável com valor "João". Não pode ser reatribuída após a declaração e deve ser inicializada no mesmo momento.

javascript
const nome = "João"

Declaração de Variável (Escopo de Bloco)

Declara uma variável com escopo de bloco (scope). Pode ser reatribuída e seu valor pode ser alterado durante a execução do programa.

javascript
let idade = 25

Declaração Antiga (Escopo de Função)

Declara uma variável com escopo de função. Devido a comportamentos inesperados de hoisting, é geralmente recomendado evitar seu uso em favor de `let` ou `const`.

javascript
var antigo = "evitar"

Verificação de Tipo de Dado

Retorna uma string indicando o tipo de dado do operando. Para strings, retorna "string".

javascript
typeof "texto"

Verificação de Tipo Numérico

Retorna a string "number", indicando que o operando é um número inteiro ou de ponto flutuante.

javascript
typeof 42

Verificação de Tipo Booleano

Retorna a string "boolean", indicando um valor verdadeiro (truthy) ou falso (falsy).

javascript
typeof true

Verificação de Null (Bug Histórico)

Retorna a string "object". Este é um bug histórico na especificação da linguagem JavaScript que persiste para compatibilidade.

javascript
typeof null

Verificação de Undefined

Retorna a string "undefined", indicando que uma variável foi declarada mas não recebeu valor.

javascript
typeof undefined

Verificação de Tipo Symbol

Retorna a string "symbol". Cria um identificador único e imutável, frequentemente usado para propriedades de objeto.

javascript
typeof Symbol()

Verificação de Tipo BigInt

Retorna a string "bigint". Permite representar números inteiros de precisão arbitrária.

javascript
typeof 42n

Conversão para Número

Converte uma string contendo um número para o tipo primitivo number (Float). Se falhar, retorna NaN.

javascript
Number("123")

Conversão para String

Converte qualquer valor para o tipo primitivo string.

javascript
String(123)

Conversão para Booleano

Converte um valor para o tipo primitivo booleano. Valores truthy (como 1) tornam-se true.

javascript
Boolean(1)

Parsing Inteiro (Ponto Flutuante)

Lê a string e retorna o primeiro inteiro encontrado até o primeiro caractere não numérico.

javascript
parseInt("42px")

Parsing Float (Decimal)

Lê a string e retorna o primeiro número decimal encontrado até o final da string.

javascript
parseFloat("3.14")
2

📋 Arrays e Métodos

18 snippets

Operações essenciais para manipulação de listas de dados, incluindo criação, mutação e iteração.

Declaração de Array Literal

Cria uma nova instância de array com os elementos fornecidos como argumentos.

javascript
const arr = [1, 2, 3]

Declaração via Construtor

Cria um novo array usando a função construtora. Funciona de forma similar ao literal.

javascript
const arr = new Array(1, 2, 3)

Declaração Estática

Cria um novo array com elementos passados como argumentos, mesmo se houver apenas um argumento numérico.

javascript
const arr = Array.of(1, 2, 3)

Array Preenchido com Valor

Cria um array com tamanho 5 e preenche todas as posições com o valor 0.

javascript
const arr = Array(5).fill(0)

Adicionar no Final

Adiciona um ou mais elementos ao final do array e retorna o novo tamanho do array.

javascript
arr.push(4)

Remover do Final

Remove o último elemento de um array e retorna esse elemento.

javascript
arr.pop()

Adicionar no Início

Adiciona um ou mais elementos no início do array e retorna o novo tamanho.

javascript
arr.unshift(0)

Remover do Início

Remove o primeiro elemento de um array e retorna esse elemento.

javascript
arr.shift()

Fatia de Array (Cópia)

Retorna uma cópia de uma parte de um array para um novo array, sem modificar o original. O índice final é exclusivo.

javascript
arr.slice(1, 3)

Inserir/Remover (Mutação)

Alterar o conteúdo de um array adicionando novos elementos, removendo elementos existentes, ou ambos, sem criar um novo array.

javascript
arr.splice(1, 2)

Iteração com Callback

Executa uma função fornecida uma vez para cada elemento do array.

javascript
arr.forEach(item => console.log(item))

Mapeamento (Transformação)

Cria um novo array preenchido com os resultados da chamada de uma função fornecida em cada elemento.

javascript
arr.map(item => item * 2)

Filtragem

Cria um novo array com todos os elementos que passam no teste implementado pela função fornecida.

javascript
arr.filter(item => item > 2)

Redução (Reduce)

Executa uma função de redução em cada elemento do array, resultando em um único valor de retorno.

javascript
arr.reduce((acc, item) => acc + item, 0)

Encontrar Primeiro

Retorna o valor do primeiro elemento no array que satisfaz a função de teste fornecida.

javascript
arr.find(item => item > 2)

Encontrar Índice

Retorna o índice do primeiro elemento no array que satisfaz a função de teste fornecida.

javascript
arr.findIndex(item => item > 2)

Algum Elemento Satisfaz

Retorna true se pelo menos um elemento no array satisfizer a condição da função de teste passada.

javascript
arr.some(item => item > 2)

Todos Elementos Satisfazem

Retorna true se todos os elementos no array satisfizerem a condição da função de teste passada.

javascript
arr.every(item => item > 0)
3

🏗️ Objetos e Propriedades

18 snippets

Manipulação de estruturas de dados chave-valor, incluindo propriedades dinâmicas e métodos utilitários.

Declaração de Objeto Literal

Cria um novo objeto contendo pares de chave-valor.

javascript
const obj = { nome: "João", idade: 25 }

Declaração via Construtor

Cria um novo objeto usando a função construtora global Object.

javascript
const obj = new Object()

Objeto Sem Protótipo

Cria um novo objeto com null como protótipo (não herdará propriedades de Object.prototype).

javascript
const obj = Object.create(null)

Acesso via Ponto

Acessa a propriedade "nome" do objeto obj.

javascript
obj.nome

Acesso via Colchetes

Acessa a propriedade "nome" do objeto obj usando uma string como chave.

javascript
obj["nome"]

Acesso via Variável

Acessa uma propriedade onde o nome da chave é armazenado em uma variável.

javascript
obj.chaveDinamica

Remover Propriedade

Remove uma propriedade de um objeto e retorna true se a propriedade existia e foi removida.

javascript
delete obj.idade

Obter Chaves

Retorna um array contendo as propriedades enumeráveis próprias de um objeto, na mesma ordem em que um loop for...in percorre.

javascript
Object.keys(obj)

Obter Valores

Retorna um array contendo todos os valores das propriedades próprias enumeráveis de um objeto.

javascript
Object.values(obj)

Obter Entradas (Chave e Valor)

Retorna um array de pares [chave, valor] para cada propriedade enumerável própria de um objeto.

javascript
Object.entries(obj)

Mesclar Objetos

Copia todas as propriedades enumeráveis de um ou mais objetos de origem para um objeto de destino.

javascript
Object.assign({}, obj1, obj2)

Spread Operator (Objeto)

Permite que um objeto seja expandido em um conjunto de argumentos.

javascript
{ ...obj1, ...obj2 }

Congelar Objeto

Impede que novos propriedades sejam adicionadas, existentes sejam removidas ou que as propriedades existentes possam ser alteradas.

javascript
Object.freeze(obj)

Sela Objeto

Impede a adição de novas propriedades e a remoção de propriedades existentes, mas permite a modificação de valores de propriedades existentes.

javascript
Object.seal(obj)

Propriedade Computada

Permite definir o nome da propriedade dinamicamente usando uma expressão.

javascript
const obj = { [chave]: "valor" }

Método Shorthand

Permite omitir a palavra-chave "function" e a palavra-chave "function" no retorno ao definir um método dentro de um objeto.

javascript
metodo() { return "oi" }

Getter

Define um método que retorna automaticamente uma propriedade quando ela é acessada.

javascript
get prop() { return this._prop }

Setter

Define um método que recebe um valor quando a propriedade é definida, permitindo manipulação de dados antes da atribuição.

javascript
set prop(val) { this._prop = val }
4

⚡ Funções Modernas

9 snippets

Técnicas avançadas de declaração de funções, incluindo arrow functions, currying e manipulação de parâmetros.

Function Declaration

Declara uma função nomeada que pode ser chamada pelo nome. É "hoisted" (elevada) no escopo global.

javascript
function soma(a, b) { return a + b }

Function Expression

Define uma função e a atribui a uma variável. Não é "hoisted" e só fica disponível após a linha de declaração.

javascript
const soma = function(a, b) { return a + b }

Arrow Function

Define uma função anônima com sintaxe mais curta. Não possui seu próprio `this`, `arguments`, `super` ou `new.target`.

javascript
const soma = (a, b) => a + b

Return de Objeto com Arrow

Usa parênteses ao redor da seta para retornar um objeto literal, pois as chaves {} são interpretadas como o corpo da função.

javascript
const soma = (a, b) => ({ resultado: a + b })

Rest Parameters

Permite representar uma quantidade indefinida de argumentos como um array.

javascript
function soma(...numeros) { return numeros.reduce((a, b) => a + b, 0) }

Spread Operator (Args)

Expande um array em uma lista de argumentos individuais para ser passado para uma função.

javascript
soma(...nums)

Parâmetro Padrão

Define um valor padrão para um parâmetro de função que será usado se o argumento não for fornecido.

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

Currying

Transforma uma função que aceita múltiplos argumentos em uma série de funções que aceitam um único argumento.

javascript
const multiplicar = fator => num => num * fator

Função de Ordem Superior

Função que recebe outra função como argumento ou retorna uma função.

javascript
const aplicar = (fn, valor) => fn(valor)
5

⏱️ Programação Assíncrona

10 snippets

Gerenciamento de operações não bloqueantes, Promises, Async/Await e Fetch API.

Promise Constructor

Cria uma Promise que será resolvida ou rejeitada em algum momento no futuro.

javascript
const promise = new Promise((resolve, reject) => { setTimeout(() => resolve("Sucesso!"), 1000) })

Tratamento de Sucesso

Registra uma função de callback a ser executada quando a Promise for resolvida com um valor.

javascript
promise.then(result => console.log(result))

Tratamento de Erro

Registra uma função de callback a ser executada quando a Promise for rejeitada com um motivo.

javascript
promise.catch(error => console.error(error))

Bloco Finally

Registra uma função de callback a ser executada quando a Promise for concluída (seja resolvida ou rejeitada).

javascript
promise.finally(() => console.log("Finalizado"))

Função Assíncrona

Declara uma função que pode conter expressões await que pausam a execução até que a Promise seja resolvida.

javascript
async function buscarDados() { try { const response = await fetch("/api/dados") ... } }

Promise.all

Retorna uma Promise que é resolvida quando todas as promises no iterável forem resolvidas.

javascript
Promise.all([p1, p2, p3])

Promise.race

Retorna uma Promise que resolve ou rejeita assim que uma das promises no iterável resolver ou rejeitar.

javascript
Promise.race([p1, p2])

Promise.allSettled

Retorna uma Promise que resolve quando todas as promises fornecidas são concluídas (seja resolvidas ou rejeitadas).

javascript
Promise.allSettled([p1, p2])

Promise.any

Retorna uma Promise que resolve assim que uma das promises no iterável resolver.

javascript
Promise.any([p1, p2])

Fetch API

Interface da Web para iniciar requisições HTTP assíncronas.

javascript
fetch('/api/users').then(res => res.json())
6

🎯 Destructuring & Spread

14 snippets

Sintaxe elegante para extrair valores de arrays e objetos, e para espalhar elementos.

Array Destructuring

Extrai valores de arrays e atribui a variáveis correspondentes.

javascript
const [a, b, c] = [1, 2, 3]

Array Destructuring com Resto

Captura o primeiro valor em uma variável e o restante em um novo array.

javascript
const [primeiro, ...resto] = [1, 2, 3, 4]

Array Destructuring Ignorando

Ignora valores desejados na posição inicial da desestruturação.

javascript
const [, , terceiro] = [1, 2, 3]

Valor Padrão

Define um valor padrão para uma variável se o valor correspondente no array for undefined.

javascript
const [x = 0] = []

Object Destructuring

Extrai propriedades de objetos e atribui a variáveis com nomes iguais ou diferentes.

javascript
const { nome, idade } = { nome: "João", idade: 25 }

Renomeando Propriedade

Permite que a variável de destino tenha um nome diferente da propriedade do objeto.

javascript
const { nome: userName, idade: age } = obj

Valor Padrão em Objeto

Define um valor padrão para uma propriedade se o objeto não tiver a propriedade ou o valor for undefined.

javascript
const { nome = "Anônimo" } = {}

Rest Operator em Objeto

Captura todas as propriedades restantes do objeto em uma nova variável.

javascript
const { nome, ...resto } = obj

Destructuring Aninhado

Permite extrair valores de objetos dentro de outros objetos.

javascript
const { usuario: { nome } } = data

Spread Operator Array

Permite criar uma cópia de um array ou adicionar novos elementos.

javascript
const arr2 = [...arr1, 3, 4]

Spread Operator Objeto

Cria uma cópia de um objeto e permite sobrescrever propriedades.

javascript
const obj2 = { ...obj1, c: 3 }

Cópia Rasa (Shallow Copy)

Cria uma nova instância de objeto com propriedades idênticas.

javascript
const copia = { ...original }

Merge de Objetos

Cria um novo objeto com propriedades de ambos, onde as propriedades de obj2 sobrescrevem as de obj1.

javascript
const merged = { ...obj1, ...obj2 }

Destructuring em Parâmetros

Permite extrair propriedades diretamente dos argumentos da função.

javascript
function processar({ nome, idade }) { ... }
7

🚀 ES6+ Features

11 snippets

Recursos do ECMAScript 2015 e versões posteriores, incluindo templates, módulos e classes.

Template Literals

Permite strings multi-linha e interpolação de expressões usando a crase (`) em vez de aspas.

javascript
const mensagem = `Olá, ${nome}!`

Template Multilinha

Permite criar strings que abrangem múltiplas linhas sem precisar de caracteres de escape de nova linha.

javascript
const multiline = `Linha 1
Linha 2`

Named Export

Exporta uma função específica para ser importada por nome em outro módulo.

javascript
const soma = (a, b) => a + b

Default Export

Exporta uma função padrão para um módulo, que pode ser importada com qualquer nome.

javascript
export default function() {}

Named Import

Importa uma função específica exportada por nome de um módulo.

javascript
import { soma } from './utils.js'

Default Import

Importa o valor padrão exportado de um módulo.

javascript
import utils from './utils.js'

Namespace Import

Importa todo o conteúdo de um módulo como um único objeto com propriedades.

javascript
import * as utils from './utils.js'

Definição de Classe

Define uma classe para criar objetos com propriedades e métodos.

javascript
class Pessoa { constructor(nome) { this.nome = nome } }

Herança de Classe

Permite criar uma nova classe que herda propriedades e métodos de uma classe pai.

javascript
class Funcionario extends Pessoa { constructor(nome, cargo) { super(nome); ... } }

Symbol Único

Cria um valor primitivo simbólico e único, que geralmente serve como chave de propriedade.

javascript
const id = Symbol('id')

Iterator (For...of)

Permite iterar sobre dados que implementam o protocolo iterador.

javascript
for (const val of obj) console.log(val)
8

🌐 Manipulação DOM

20 snippets

Interagir com a estrutura de documentos HTML e CSS.

Selecionar por ID

Retorna o elemento que corresponde ao ID fornecido na página.

javascript
document.getElementById('meu-id')

Selecionar por Seletor CSS

Retorna o primeiro elemento dentro do documento que corresponde ao seletor CSS especificado.

javascript
document.querySelector('.classe')

Selecionar Todos

Retorna uma NodeList estática com todos os elementos que correspondem ao seletor CSS.

javascript
document.querySelectorAll('div')

Selecionar por Classe

Retorna uma HTMLCollection de elementos com a classe fornecida.

javascript
document.getElementsByClassName('classe')

Selecionar por Tag

Retorna uma HTMLCollection de elementos com a tag fornecida.

javascript
document.getElementsByTagName('p')

Definir Texto Seguro

Define o texto contido no nó. Escapa caracteres HTML para evitar injeção de script.

javascript
element.textContent = "Texto"

Definir HTML

Define o HTML interno do elemento. Não escapa caracteres, permitindo HTML válido.

javascript
element.innerHTML = "<strong>HTML</strong>"

Definir Valor de Input

Define o valor de um elemento de formulário (input, select, textarea).

javascript
element.value = "valor"

Obter Atributo

Retorna o valor de um atributo HTML especificado.

javascript
element.getAttribute('data-id')

Definir Atributo

Define o valor de um atributo HTML especificado.

javascript
element.setAttribute('data-id', '123')

Definir Estilo Inline

Define o estilo CSS diretamente no elemento como propriedade de estilo.

javascript
element.style.color = 'red'

Adicionar Classe

Adiciona uma ou mais classes CSS ao elemento especificado.

javascript
element.classList.add('ativa')

Remover Classe

Remove uma ou mais classes CSS do elemento especificado.

javascript
element.classList.remove('ativa')

Alternar Classe

Adiciona a classe se não existir, ou remove se existir.

javascript
element.classList.toggle('ativa')

Verificar Classe

Retorna true se o elemento possuir a classe especificada.

javascript
element.classList.contains('ativa')

Criar Elemento

Cria um novo elemento HTML com a tag especificada.

javascript
const div = document.createElement('div')

Adicionar ao DOM

Adiciona um nó como o último filho do elemento pai.

javascript
document.body.appendChild(div)

Remover Elemento

Remove o elemento do DOM.

javascript
element.remove()

Adicionar Evento

Registra uma função de callback a ser executada sempre que o evento ocorrer.

javascript
element.addEventListener('click', (e) => { ... })

Remover Evento

Remove um listener de evento registrado anteriormente.

javascript
element.removeEventListener('click', handler)
9

🐛 Debugging & Ferramentas

13 snippets

Técnicas e métodos de console para diagnóstico e análise de performance.

Log Básico

Registra uma mensagem no console de depuração.

javascript
console.log('mensagem')

Log de Erro

Registra uma mensagem de erro no console com ícone vermelho.

javascript
console.error('erro')

Log de Aviso

Registra um aviso de advertência no console com ícone amarelo.

javascript
console.warn('aviso')

Log de Informação

Registra uma mensagem informativa no console com ícone azul.

javascript
console.info('info')

Tabela de Dados

Exibe uma tabela tabular de dados no console para visualização fácil.

javascript
console.table([{a:1}, {a:2}])

Agrupar Logs

Inicia um grupo de logs no console para organização visual.

javascript
console.group('grupo')

Fechar Grupo

Encerra o grupo de logs iniciado anteriormente.

javascript
console.groupEnd()

Iniciar Timer

Inicia um temporizador no console. O tempo decorrido é calculado desde a chamada até `timeEnd`.

javascript
console.time('timer')

Finalizar Timer

Para o temporizador e imprime o tempo decorrido no console.

javascript
console.timeEnd('timer')

Ponto de Parada

Pausa a execução do script e abre as ferramentas de desenvolvedor do navegador.

javascript
function debugar() { debugger }

Timestamp Preciso

Retorna um valor de timestamp de alta precisão (em milissegundos) desde a época.

javascript
performance.now()

Marca de Performance

Cria uma marca de tempo de alto nível no timeline de performance.

javascript
performance.mark('start')

Medir Performance

Cria uma medição entre duas marcas de tempo.

javascript
performance.measure('diff', 'start', 'end')

Receba os ultimos artigos no seu email.

Follow Us: